Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.06.2011, 22:16
kotbimigot kotbimigot вне форума
Прохожий
 
Регистрация: 02.06.2011
Сообщения: 1
Репутация: 10
По умолчанию Работа с файлами PNG

Изучаю обработку файлов PNG с целью вывода картинок на LCD с помощью пока Меги128, пишу на на си,не на делфи).Прошу помощи знающих людей именно по работе с форматом файлов, алгоритмом декодирования и т.п.! Перелопачена куча информации, в том числе всяческие описания с официального сайта,алгоритм Deflate и т.п. На данный момент есть несколько неразрешенных вопросов
1 В каких случаях при кодировании данных (и декодировании соответственно) используется выравнивание потока?
2 В одной из статей,где описывается формат, отмечено "В формате PNG v1.0 <...>" . Какие сейчас еще существуют версии (известно, что формат оч активно развивается) и в чем между ними различие?
3 Заполнение повторов при заполнении таблицы длин кодов для декодировании данных,сжатых динамическим дефлэйтом, в соответствии с Rfc1951 ведется путем "сopy the previous code", однако при таком заполнении, после расчета количества повторов и начальных кодов и получения таблицы кодов длин, данные из потока не декодируются вообще, да и начальные коды (next_code) вызывают большие сомнения из-за огромного числа повторов (bl_count). В то же время вычитанная из статьи г-на Михальчика "Описание формата сжатия данных Deflate" методика заполнения повторов нулями дает таблицы длин и кодов, по которым данные из потока для относительно небольших файлов различных типов (2,3,4,6), как с динамическим так и со статическим дефлэйтом, успешно декодируются ( с учетом фильтрации). Проблема состоит в том, что декодировать удается все-таки не все файлы - иногда декодируется только одно значение данных из потока, иногда несколько, потом появляется значение, для которого в таблицах нет длины/кода и декодирование невозможно, достаточно часто так происходит после обработки встреченной в потоке команды повтора/смещения (при этом рассчитанные по алгоритму Rfc1951 значения смещений оказываются больше,чем количество обработанных данных, и смещение невозможно) . Подскажите, могут ли алгоритмы декодирования и/или фильтрации быть различными,если да - в каких случаях, в чем еще может быть причина подобной проблемы декодирования?
Знатоки png отзовитесь!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter