-=RUS=- | Дата: Воскресенье, 16.11.2014, 12:49 | Сообщение # 1 |
 Генералиссимус
Группа: Администраторы
Сообщений: 352
Статус: Offline
| (HELL Compressor.doc)
HELL Compressor (Описание работы)
ПРИВЕТ!
HELL graphic представляет Вам первую версию программы "HELL Compressor". Предназначена она для сжатия графики пятью способами, а также имеется возможность ускоренного вывода черно- белого изображения. Алгоритмы сжатия и вывода я не откуда не брал, а мучился сам, поэтому на оригинальность эта программа не претендует. Итак, её возможности:
Способы сжатия: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 1.Горизонтальный 2.Горизонтальный + сжатие в 2 раза (Монохром) 3.Вертикальный 4.Вертикальный + сжатие в 2 раза (Монохром) 5.Красивый (отдельными байтами)
Работа с программой: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Для начала разберемся с главным меню. ЧТЕНИЕ. Ну, тут я думаю Вам всё ясно. После загрузки программа попытается определить размер спрайта. Происходит это так: предполагается, что первое слово файла - это ширина в байтах, а второе слово – соответст- венно высота в строках загруженного файла. Далее идёт перемноже- ние этих слов и сравнение результата с длиной загруженного файла минус четыре байта. Если всё нормально, то спрайт выводится на экран в нормальном виде. Если нет то результат ещё раз сравнива- ется с длиной файла минус пять байт (четыре байта - данные,а ещё один на тот случай, если вдруг этот спрайт записал TECHNO-ART, - нечётные длины у спрайтов он увеличивает на байт, делая их чётными). Если всё совпало, то спрайт выводится, иначе появится под- сказка с предложением понажимать кнопки: ← - уменьшение размера по горизонтали с увеличением по вертикали; → - тоже самое, толь- ко наоборот; и наконец вводом Вы можете зафиксировать координаты в памяти. И всего вышесказанного становится ясно, что программа довольно-таки неплохо определяет спрайты Techno-Art, Pixel, MultiPaint, но зато совершенно не переваривает спрайты ANIMATICа записанные с одному ему понятными блоками данных. Да, забыл. Если Вы вдруг загрузили файл длиной 16К (40000), то ему при- шивается ширина в 100 байт, и высота в 400 строк. После этого программа сразу выходит в основное меню. Переходим к следующему пункту. ЗАПИСЬ. Если Вы ничего не загружали, то программа ничего и не запишет (что посеешь, то и пожнёшь). Но если Вы все-таки что- то загрузили, тогда возможны несколько вариантов. 1-ый - файл вы загрузили, но не стали сжимать. Тогда программа спросит имя и запишет файл с блоком данных. 2-ой - если Вы всё-таки что-то сжали, то программа предложит записать данные с блоком вывода или без него, после этого она спросит имя на запись и целиком отдастся во власть операционной системы (вернее её EMT диспче- ра). А вот ещё что. Вспомнил! Во время набора имени блокируются вредные управляющие коды. Действуют клавиши: ←, →, ЗАБОЙ, ВВОД, РУС, ЛАТ, а также все цифровые и символьные кнопки. ВНИМАНИЕ!!! Записать что-либо можно только один раз, после записи экран очищается и программа выходит в основное меню с потерей входного файла. Клавиша "СТОП" заблокирована наглухо, так что прежде, чем что-нибудь нажать, хорошенько подумайте. Поехали дальше. ДОП.МЕНЮ. Ну, меню как меню - ничего особенного. Сейчас вот только вспомню как оно выглядит... Ага, глядите:
┌─────────────────┐ │ Способы вывода: │ │Горизонтальный +│ │Вертикальный -│ │Монохромный -│ │Ускоренный -│ │Красивый -│ │Основное меню │ └─────────────────┘
Двигая инверсную строку вверх и вниз, вводом можно включить или выключить любой режим. Внимание! Режим ускоренной распаковки включается только при включенном монохромном режиме, также при выключении монохромного режима вырубается и ускоренный. При установке красивого вывода, обнуляются всё режимы и принудитель- но включается горизонтальный режим. И пока Вы не решитесь выру- бить эту "красоту", ни один из режимов не будет доступен. Ну ладно, если Вас всё устраивает, выходите в основное меню и... СЖАТИЕ. Тут все зависит от того, что Вы на выбирали в преды- дущем пункте. Если вдруг Вас угораздило избрать монохром, то картинка или там спрайт сжимается вдвое (любая точка принимается за белую), а потом уже по вертикали или горизонтали. Затем перед Вами появляется главное меню. Остальные режимы в том же духе, кроме красивого. Если оный режим был выбран, то из ниоткуда вылезет на экран надпись: "ЧИСЛО=0000XX". Сие означает, что программа программа просит Вас кнопками ↑ и ↓ изменить коэффици- ент извращения спрайта. Любой кнопкой, кроме ввода (например пробелом) можно посмотреть, как будет выводится спрайт (он два раза инвертируется согласно коэффициенту). Кстати, это число, которое я называю коэффициентом, может быть только нечетным и не больше чем размер спрайта по горизонтали в байтах. Если Вас всё устраивает, то смело жмите ввод. И всё !!! Следующий пункт назы- вается... ВЫХОД. Кому что-нибудь не ясно в этом пункте, звонить: 03.
----------------------------------------------------------------
ВНИМАНИЕ! Программа работоспособна в полном объёме только на БК0010(-01) + не менее 8 кб ДОЗУ и на БК0011(М). Это происходит потому, что "HELL Compressor" использует для работы область ОЗУ 126500-137700 (4,5 кб). Кстати, программа портит эту область в том случае, если длина загруженной графики превышает 27000(8). Программа писалась под ANDOS, но очень даже вероятно,что она не прочь поработать в других операционках. Алгоритм сжатия не очень оригинален, но зато, даже если Вы загрузите сюда такую картинку, в которой нет ни одного одинакового байта, программа Ваши данные НЕ УДЛИНИТ, как это с успехом делает KOMP 2. Максимум, что она навесит, так это блок данных (X, Y, смешение от начала до данных - 6 байт) и блок вывода, если Вы так хотите.
Длины блоков вывода: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 1. Горизонтальный - 126(8)байт 2. Вертикальный - 136(8)байт 3. Вертикальный + Монохром - 176(8)байт 4. Горизонтальный + Монохром - 166(8)байт 5. Ускоренный вертикальный + Монохром - 1176(8)байт 6. Ускоренный горизонтальный + Монохром - 1166(8)байт 7. Красивый - 272(8)байт
Спрайты или картинки сжатые одним и тем-же способом можно, выводить одним и тем-же блоком. Это также касается и спрайтов упакованных "Красивым" способом. В первом слове данных у этих спрайтов будет записан коэффициент извращения (см. выше). Необ- ходимо будет коррекция адреса данных в начале блока вывода и ещё в нескольких местах, потому что некоторые блоки запрашивают не- обходимые им данные непосредственно из области, расположенной сразу за блоком вывода. Ускоренный способ распаковки монохромных картинок и спрайтов я подробно опишу в "HELL News 2", так что если Вам интересно,то читайте на здоровье (если осталось). Скоро я выпущу улучшенный вариант "HELL Compressor"а, который будет упаковывать получше и будет иметь ряд новых функций. А пока я Вам говорю "ДО СВИДАНИЯ!" и нажимаю ВС+Е... Нет, ещё рано я что- то забыл... А вот:
Передаю большие приветы: SKILL SOFT, GREAT STYLE, ALEX, NGY soft, CINEMA corp., MWW soft, MAF inc., VA picture и некоторым другим...
Bye !!! See you soon !!!
|
|
| |