3Bit
#01
03 января 2005 |
|
Рабочий стол - JPEG/GIF laboratory 1.1: программа для просмотра картинок в формате JPEG/GIF.
JPEG/GIF laboratory 1.1 (c) Sam Style (c) Cooper/RSM/P7S ────────────────────────────────────────── От редакции: данный текст представляет собой авторское описание данной прграммы с моей рецензией в конце. Когда совсем я разбогатею, Я стану намного добрее Надо ловить за жопу удачу, А я вроде это умею "Кирпичи" ВелКам! Итак, конвертер нужен для конверсии JPEG'ов в спековские экраны и GIF'ов в анимационные файлы. Последнее, судя по тому, что более я ничего не видел, при- надлежит мне любимому. Конкретно в этой версии новое: (!) сохранение триколора в три файла (red, grn, blu) (!) наконец-то кадры анимации начали прес- соваться; в среднем файл жмётся в 1.5- 3 раза, но у меня доходило и до 6 раз! (!) два метода прессовки кадров (о преиму- ществах каждого читай далее) (+) размывка при ширине результата 256 пи- кселей не оставляет справа вертикаль- ную полосу. (+) если в GIF'е код очистки встречался в ходе изображения, такое могло привести к полету компучера в космос. (-) перед входом в ANI-плейер бывает за- держка в секунду-другую: мы сканируем файл и делаем табличку кадров. Само описание: 1. Методы конверсии: - размывка (dithering по Floyd-Steinberg) сделано так же, как и в JPEGviewer 0.2: как год назад вынул процедурину, так почти и не менял. - текстура в 32 градации согласно яркости пикселей. - тритон: та же текстура только в три градации (три тона, отсюда и название) с плавающими границами (см. линейки). - солидол есть просто заливка по ст. биту яркости. 2. Масштабирование: вот это то, чем мой конвертер выгодно отличается от AlCo- вского. Хоть он и делает масштаб в сво- ей проге, но как бы я тут первый... - автомасштаб пропорционально жмет или тянет картинку так, чтоб она помести- лась в наш родный экран 256*192. - авто по X тянет (жмет) картинку, чтобы она влезла в 256 пикселей по координате X. - авто по Y делает то же с Y: жмем-тянем до 192. - адын в адын вырезает из картинки кусок 256*192, если так вообще можно (нельзя, когда изображение само маленькое). - увеличение позволяет вырезать из кар- тинки любой регион с соотношением сто- рон 4:3. - уменьшение независимо от размера кар- тинки предлагает вписать ее в часть эк- рана. - диспропорция уже непропорциональное де- ло: тянет или жмет картинку до полного заполнения экрана так может оказаться, что по X она растягивается, а по Y сжи- мается. - произвол это произвол... является рас- ширением 'диспропорции' и конвертит изображение в любой кусок экрана разме- рами от 8*3 до 255*192. 3. Типы экранов: - нормальный, или стандартный экран дли- ной #1B00 или #1800 - смотря как кон- вертил и сохранял. - два экрана - смотрятся 50Гц-переключе- нием, это самый тормознутый в плане ко- нверсии экран, но бывает, что получает- ся ничего... Длина #3600. - триколор: три экрана длиной 3*#1800= #4800. Для просмотра в идеале подходит QSV, 8col0. 12 и иже с ними, а мне про- сто жалко тратить память под огромную, но быструю моргалку. Начиная с этой версии триколор можно раскидать по трем файлам (*.red, *.grn, *.blu). - образ (IMAGE) есть моя придумка, верну- вшаяся в строй после глобальной переко- дировки JPEG'а. Это есть огромный (или нет) ч/б спрайт - результат конверсии. Если вышел небольшим, его можно хранить на диске как экран(чик), ведь занимать он будет меньше 24 секторов. На image действуют все типы масштабов, но есть одно ограничение: результат не может быть шире 1024 (4 экрана) пикселей. Под буфер image выдано 64кБ, он туда должен уместиться... По максимуму туда лезет спрайт 1024*511. 4. Линейки: - яркость повышает или понижает оную у пикселей. - контраст отвечает за разброс яркости от #80. Яркость и контраст совершенно не затра- гивают цветной солидол и триколор. - red, green,blue влияют на интенсивность цвета и действуют только на цветную ко- нверсию. - black limit в цветном экране и двухэк- раннике определяет черный цвет: если R+ G+B<black limit, то цвет считается чер- ным. - колоризация сильно влияет на линейную схему передачи цвета (см. далее). - triton lev1, lev2 определяют границы тритона: если яркость меньше их обеих, то заливки не будет,если больше обеих - сплошной солидол, и наконец заливка се- ткой, если ни туды, ни сюды. 5. Флаги: Во-первых это 7 старых (больше 4 меся- цев) флагов: - Цветной scr вкл - делается экран с цве- том. Имеет смысл только для цветного солидола, остальное выглядит не особо красиво. - предпросмотр сделан для быстрой конвер- сии JPEG'а за счет потери качества. Мной обычно эта штука пользуется, чтобы определить, что там где и в каком месте надо вырезать, чтоб сиська в кадр попа- ла :))) - линейный цвет является дешевой, но тон- ко настраиваемой альтернативой стандар- тной (hi-bit) определялки ZX-цвета из TrueColorа. Тонкая настройка ведется линейкой 'колоризация', позволяя полу- чить все извраты от сине-красно-зелено- го (0) до черно-белого (255). для раз- ных картинок нужна разная колоризация, а то бывало, что и красный (краснее не- куда) цвет становился белым... - 2 цвета в боксе. Если он выключен, в цветной SCR ложится только INK, а если включен, то PAPER тоже. - подавление яркости убивает в боксе 8*8 весь 'не такой' цвет. 'Таким' считается самый частый. - негатив он и в африке негатив. - все файлы - чисто сервисный флаг, кото- рый в выкл. состоянии заставляет от- фильтровывать в каталоге файлы по рас- ширению. Есть и несколько новых (моложе 4 меся- цев) флагов: - ч/б экран с atr: если поконверчен экран без атрибутов, он может быть сохранен с оными (ink 7). - триколор как BRG: сильно удивившись за- яве AlCo, что триколоры RGB вообще сла- бо распространены и чуть ли не изгои, я все же вделал возможность сохранения их в BRG-формате... - image cutter сохраняет не весь image, а только то, что в данный момент показано на экране. - RGB отдельно: это новая возможность со- хранить триколор как 3 отдельных экрана с одним именем и расширениямни red,grn, blu (по цвету). 6. Паковка анимации: Ранее анимация представляла собой просто несколько голимых спрайтов, следующих друг за другом. Такой расклад вряд ли кого ра- довал - некоторые мультики доходили до 50 кБ размером. С целью убрать этот прыщ, я вделал возможность паковать анимацию и предлагаю 2 метода упаковки, сделаных на основе упаковки роликов VideoStudio. - BITPACK сделан так же как в VS - этим методом лучше всего жмется 'сетка', т.е повторяющаяся пара байт (#55, #аа, #55, #аа,...). - ZEROPACK модифицирован мной из bitpackа Он опирается на повтор байт (#00, #00, #00 или #73,#73,#73...) и поэтому более подходит для солидола. Результаты теста показали, что на хоро- шей картинке при солидоле zeropack может выиграть до 20% у bitpack-а и снять в сум- ме до 60% у старых ani, тогда как на три- тоне и текстуре лучше был bitpack (не все- гда, но часто). Есть две причины, по которым кадр не бу- дет жаться: 1. Ты забыл включить упаковку. 2. Это ключевой кадр с размером спрайта более 4кБ. просто для хранения ключево- го кадра мне нужен голый (непакованый) спрайт, а буфер для него пока один - 4 кБ за словарем LZW (хорошо еще код LZW ограничен 12 битами...). Нужен буфер 6 кБ, тогда паковаться будет все! 7. Процесс: Итак, ты настроил все, что надо, нажал ЗАПУСК и выбрал нужный файл. Если он узнан как JPEG или GIF, процесс пойдет. Если масштаб это допускает, будет пред- ложено выбрать место (и размер) области конверсии. QAOP - движение рамки (в уменьшении и произволе это изменение размера, а в увеличении image изменение раз- мера экрана в образе). QAOP+enter - если можно, меняет размер рамки. SShift - подкладывает под рамку последний сконверченый стандартный экран. Так можно точнее выбрать место. Space, LMB - старт конверсии. В процессе конверсии на экран выводится только SCR и кадры GIFa, остальное конвер- тится тихой сапой в память, а глупого вида будильник развлекает тебя своей гребаной рожей... Как бы там ни было, а в конце ты увидишь зеленое окно с радостной надписью, что-де 'Конверсия завершена'. Могут быть и ошиб- ки, из которых только переполнение не та- кое страшное. Переполнение image оставит все что влезло, а переполнение анимации отрежет текущий кадр (типа кастрируется). 8. Сохранение: Отдельно хранится экран, который затира- ется только когда заменяется другим или сохраняется кусок image. Экран можно уз- реть и сохранить через Save scrЫn. Все остальное (напоминаю, что оно убивает друг друга) видится и сохраняется через Save extend. Отдельно можно рассказать об ani- плейере. 9. ANI-плейер: Это встроеная пурга для играния или по- кадрового просмотра только что сконверче- ной анимации. Снизу слева направо сидят кнопки: PLAY, НА НАЧАЛО, СЛЕД. КАДР, ПРЕД. КАДР, ДОБАВИТЬ, ТОРМОЗ, СОХРАНИТЬ, ВЫЙТИ. Тормоз эта такая хрень, позволяющая за- медлить или ускорить анимацию (забыл гар- кнуть, что задержки кадров такие же как в самом GIFе: тока там в 1:100, а у нас в 1: 50 сек). Меняется кнопками влево-вправо. Когда анимация не играется, кнопками вверх и вниз меняется длительность текущего кад- ра. Сохраняется анимация с теми задержками, которые были показаны. Если тормоз не до- бавить, он не сохранится. 10. На GIF не действуют: - тип экрана, потому как делается в ани- мацию. - из масштаба только уменьшение и произ- вол. - из флагов вообще ничего (ибо не надо). - black limit и колоризация, ибо ANI без цвета. 11. Если надо: Ежели у кого вдруг найдется мысль, кото- рая мне в мозг не залезла при создании проги, пусть мне мылит. Могу еще немного наколбасить... Горизонты будут раздвинуты (c) SAM style, 5.10.04 Великий Новгород, Россия samstyle@list.ru От Cooper'а: Прикольная, кстати, програм- ма! Наконец-то, не надо бегать по разным прогам, чтобы сконвертировать картинки ра- зличных форматов. Радует наличие гибкой настройки и широкий выбор конечных форма- тов. Качество конвертирования тоже, в при- нципе, неплохое. Довольно удобный интер- фейс. Хотелось бы, чтобы ползунки можно было изменять и помощью миши. Типа, нажал на шкалу курсором и мышей вправо или вле- во... Вобщем, качественный продукт. А что ещё можно было ожидать от SAM style? ──────────────────────────────────────────
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября