IPB
ЛогинПароль:

> кодирование GIF
kosyak
сообщение 23.04.2008 17:10
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 100
Пол: Мужской

Репутация: -  0  +


Пожалуйсто помогите!!! Нужно сделать кодер из bmp в gif и обратно... С чего начать? Где можно почитать попонятней?.... может у кого есть исходники

Заранее благодарен...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
andriano
сообщение 13.05.2008 18:26
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Простого, очевидного и однозначного алгоритма здесь не существует.
Более того, для того, чтобы вычислить палитру близкую к оптимальной, следует занть алгоритм приведения труколорного изображения к новой палитре, т.к. при разных алгоритмах и оптимальные палитры будут различными.
Самый простой и быстрый способ - использовать одну и ту же палитру на все случаи жизни, как это делает Microsoft Paint.
Если нужна адаптивная палитра - несколько сложнее.
Кстати, возможно, в этом случае целесообразно воспользоваться внешней программой, которая сделает всю необходимую работу для указанного файла.
Кстати, если несколько файлов нужно привести к одной и той же палитре, то их надо объединить в один, после чего обрабатывать уже суммарное изображение.
Если же хочется реализовать алгоритм самому, то начинают обычно с того, что заводят трехмерный массив (описывающий цвета в RGB-кубе), в каждую ячейку которого заносится количество повторений данного цвета.
В самом общем случае - это 16.7 млн чисел, вероятно, 32-разрядных, т.е. 64 Мбайта. В принципе не так уж много для современных компьютеров. Но, учитывая, что потери все равно неизбежны, можно перейти от 8-битного представления каждой цветовой составляющей к 7- или 6-битному, сократив объем используемой памяти до 8 или 1 Мбайта.
Проходим по изображению - заполняем массив.
Находим ограничивающие плоскости, т.е. минимальные и максмальные интенсивности цветовых составляющих, встречающихся в изображении. Получаем некоторый объем цветоавого пространства, которое затем нам предстоит разбить на 256 частей, каждая из которых представляет цвет в результирующей палитре.
Вот алгоритм разбиения объема на части - и есть вещь неочевидная и зависящая от дальнейшего алгоритма преобразования цвета.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
kosyak   кодирование GIF   23.04.2008 17:10
andriano   http://ru.wikipedia.org/wiki/GIF и по ссылкам.   23.04.2008 19:31
kosyak   Вроде разобрался... Тока вот с LZW не до конца пон...   27.04.2008 10:31
andriano   Сдвигами объединяешь нужную последовательность бит...   27.04.2008 15:55
kosyak   Ага... Т.е. если LZW код выглядит так: 1 0 2, приб...   27.04.2008 20:34
kosyak   И еще вопрос: есть гиф, который закодирован в Phot...   27.04.2008 20:59
kosyak   Ну что? Никто не поможет??? Объясните как работает...   4.05.2008 20:07
andriano   В чем проблема? Берешь любой GIF, преобразовываешь...   4.05.2008 20:51
kosyak   В чем проблема? Берешь любой GIF, преобразовываеш...   4.05.2008 22:33
andriano   Еще раз: возьми конкретный BMP, попытайся его зако...   5.05.2008 7:24
kosyak   Еще раз: возьми конкретный BMP, попытайся его зак...   6.05.2008 21:40
andriano   Нет, форум не для того, чтобы объяснить, а для тог...   7.05.2008 22:32
kosyak   Ладно, не будем спорить... Я вроде разобрался и сд...   13.05.2008 16:39
andriano   Простого, очевидного и однозначного алгоритма здес...   13.05.2008 18:26
kosyak   Палитру я решил делал самым простым способом, как ...   15.05.2008 18:26
andriano   Раз картинка смещается, значит, в программе ошибка...   15.05.2008 22:29


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.08.2025 10:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"