![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| [Lorry] |
|
|||
|
Unregistered |
Добрый день!
Мне нужно написать простенький архиватор на основании алгоритма RLE: если идёт последовательность повторяющихся байтов, то в архиве ставится байт с ведущим битом равным 1, а остальные 7 - счётчик повторений. И сразу после этого байта идёт тот байт, который повторяется. Если идёт последовательность неповторяющихся байтов, то ставится байт с ведущим нулём, а осальные 7 бит - это сколько после этого байта будет помещено неповторяющихся символов. Моя проблема заключается в том, что программа корректно архивирует и разархивирует только 256-цветные BMP файлы, а 24-битовые искажает при распаковке Помогите разобраться в чем дело. Очень надо Заранее благодарна
|
|||
|
||||
| cardinal |
|
||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
А ты уверен, что при распаковке? А может уже при запаковке? Потом следующие вопросы: 1. Ты запаковываешь файл полностью? Это неправильно! Так как упакованные RLE bmp файлы открываются редакторами, а если ты запакуешь файл полностью (а не только bitmap), то никакой редактор не будет знать, что это за файл. Если тот же ACDSee не может открыть твой запакованный файл, то это так. 2. Если не ошибаюсь, для 4 и 8 битных bmp'шек используются разные RLE алгоритмы. Но это не суть. Дело тут в другом. Дело ИМХО как всегда в округлении строк. То есть если в синтаксисе C/C++, то ширина твоей картинки равна в 8 битном файле
а в 4 битном
Как я понял ты это вообще не учел. 3. Из каких то соображений (не помню каких) я не занимался RLE 24 битной картинки. Помоему это RLE описанием не предусмотрено. Типа того, что 4 и 8 битный RLE, а 24 не делают. Почему не знаю. Кстати сейчас открыв графичекий редактор я этому еще раз удостоверился. Тут копай в сторону dither короче. Успехов! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||
|
|||||||
| [Lorry] |
|
|||
|
Unregistered |
Большое спасибо!
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Не за что.
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |