Вложений: 1
Корвет: граф редактор GRIN
На Корвет есть редактор GRIN
marinovsoft подтолкнул меня посмотреть форматы его файлов
вот что написано в доке
Цитата:
5.2.5.1. GRF - Режим выгрузки со сжатием.
Это основной режим выгрузки. В этом режиме рисунок при
сохранении кодируется и занимает на диске меньше места.
Недостаток этого режима - невозможность использования рисунка
другими программами.
5.2.5.2. PIC - Режим выгрузки без сжатия.
Этот режим может понадобиться при использовании рисунка
другими программами. В файл выводятся полностью 3 слоя ГЗУ
начиная с младшего. Таким образом объем файла всегда будет
равным 48 Кбайт.
5.2.5.3. WIN - Режим выгрузки окна.
Этот режим позволяет выгружать на диск не весь, а только
часть рисунка (окно). Это очень полезно при переносе участков
изображения из одного рисунка в другой.
В отличие от других режимов, при выгрузке окна после
нажатия клавиши 'S' (Start) не происходит сразу же выгрузка, а
на экране появляется курсор. Необходимо выделить на экране (так
же, как при копировании) сохраняемое окно и лишь после этого
файл будет записан.
Еще одно достоинство этого режима - если вы делаете
небольшой рисунок ,то может оказаться, что его размер на диске
при выгрузке окна будет меньше, чем при выгрузке со сжатием.
вот описания форматов ;)
Код:
PIC - просто 3 слой по 16 кб, 48К, без заголовка
Код:
WIN - запись прямоугольной области
формат файла
db 'WIN1.0'
dw xPixelSize-1
db ySize-1
3 слоя размером xPixelSize/8*ySize каждый
размер слоя в байтах выровнен в большую сторону а y в заголовке
planeSize=(xPixelSize/8+1)*(ySize+1)
Код:
GRF - сжатый экран
отдельно сжаты 3 слоя
сжатие построчное ;)
данные - битовый поток
db 'GRF1.0'
данные, последовательно 3 плоскости
пока не заполинли плоскость (0x4000)
читаем 3 бита (хотя значящих там только 2)
case
0: побитно 512бит из потока в итоговую плоскость (или 64 байта)
1: читаем бит, если он равен 0 то заполнитель =0 иначе 0xff, заполняем 64 байта заполнителем
2: читаем байт заполнителя, заполняем 64 байта заполнителем
3: читаем байт заполнителя
64 байта ....
читаем бит
если бит = 1 то читаем байт и записываем его в выходной поток
иначе записываем заполнитель в выходной поток
в аттаче мои "декодеры"