Пожалуйсто помогите!!! Нужно сделать кодер из bmp в gif и обратно... С чего начать? Где можно почитать попонятней?.... может у кого есть исходники
Заранее благодарен...
| kosyak |
Сообщение
#1
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 100 Пол: Мужской Репутация: 0 |
Пожалуйсто помогите!!! Нужно сделать кодер из bmp в gif и обратно... С чего начать? Где можно почитать попонятней?.... может у кого есть исходники
Заранее благодарен... |
![]() ![]() |
| andriano |
Сообщение
#2
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Простого, очевидного и однозначного алгоритма здесь не существует.
Более того, для того, чтобы вычислить палитру близкую к оптимальной, следует занть алгоритм приведения труколорного изображения к новой палитре, т.к. при разных алгоритмах и оптимальные палитры будут различными. Самый простой и быстрый способ - использовать одну и ту же палитру на все случаи жизни, как это делает Microsoft Paint. Если нужна адаптивная палитра - несколько сложнее. Кстати, возможно, в этом случае целесообразно воспользоваться внешней программой, которая сделает всю необходимую работу для указанного файла. Кстати, если несколько файлов нужно привести к одной и той же палитре, то их надо объединить в один, после чего обрабатывать уже суммарное изображение. Если же хочется реализовать алгоритм самому, то начинают обычно с того, что заводят трехмерный массив (описывающий цвета в RGB-кубе), в каждую ячейку которого заносится количество повторений данного цвета. В самом общем случае - это 16.7 млн чисел, вероятно, 32-разрядных, т.е. 64 Мбайта. В принципе не так уж много для современных компьютеров. Но, учитывая, что потери все равно неизбежны, можно перейти от 8-битного представления каждой цветовой составляющей к 7- или 6-битному, сократив объем используемой памяти до 8 или 1 Мбайта. Проходим по изображению - заполняем массив. Находим ограничивающие плоскости, т.е. минимальные и максмальные интенсивности цветовых составляющих, встречающихся в изображении. Получаем некоторый объем цветоавого пространства, которое затем нам предстоит разбить на 256 частей, каждая из которых представляет цвет в результирующей палитре. Вот алгоритм разбиения объема на части - и есть вещь неочевидная и зависящая от дальнейшего алгоритма преобразования цвета. |
kosyak кодирование GIF 23.04.2008 21:10
andriano http://ru.wikipedia.org/wiki/GIF и по ссылкам. 23.04.2008 23:31
kosyak Вроде разобрался... Тока вот с LZW не до конца пон… 27.04.2008 14:31
andriano Сдвигами объединяешь нужную последовательность бит… 27.04.2008 19:55
kosyak Ага... Т.е. если LZW код выглядит так: 1 0 2, приб… 28.04.2008 0:34
kosyak И еще вопрос:
есть гиф, который закодирован в Phot… 28.04.2008 0:59
kosyak Ну что? Никто не поможет??? Объясните как работает… 5.05.2008 0:07
andriano В чем проблема?
Берешь любой GIF, преобразовываешь… 5.05.2008 0:51
kosyak
В чем проблема?
Берешь любой GIF, преобразовываеш… 5.05.2008 2:33
andriano Еще раз: возьми конкретный BMP, попытайся его зако… 5.05.2008 11:24
kosyak
Еще раз: возьми конкретный BMP, попытайся его зак… 7.05.2008 1:40
andriano Нет, форум не для того, чтобы объяснить, а для тог… 8.05.2008 2:32
kosyak Ладно, не будем спорить... Я вроде разобрался и сд… 13.05.2008 20:39
kosyak Палитру я решил делал самым простым способом, как … 15.05.2008 22:26
andriano Раз картинка смещается, значит, в программе ошибка… 16.05.2008 2:29![]() ![]() |
|
Текстовая версия | 18.02.2026 11:32 |