3Bit #01
03 января 2005
  Софт  

Рабочий стол - JPEG/GIF laboratory 1.1: программа для просмотра картинок в формате JPEG/GIF.

<b>Рабочий стол</b> - 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?
──────────────────────────────────────────



Другие статьи номера:

От редакции - новый украинский электронный журнал под названием "3BiT".

От редакции - накануне: переписка авторов журнала с корреспондентами.

От редакции - Credits: авторы журнала.

Speccy news - новости: Scl выпустил газету Cossackos, результаты Воронежского фестиваля KidSoft'2004, Сергей Бульба архив AY музыки, Alone Coder выпустил Info Guide #6...

Программинг - новый быстрой и короткий PT3.x Player от RSM.

Программинг - дизайн исходных кодов: основные требования к листинг программы, ориентированной на широкую публику.

Программинг - процедуры печати текста шрифтами 8х8, 6х8, 5х8, 4х8 точек.

Программинг - обзор особенностей моделей оттечественного и фирменного спектрума от Rob F.

Программинг - сборник кодов: Рисование окна с рамкой в цвете, обработка дисковых ошибок TR-DOS, универсальня процедура Scroll'a экрана.

Программинг - Game Making: Mad Killer делится опытом создания игр для ZX Spectrum.

Программинг - Нестандартное использование General Sound: эмулятор звукового сопроцессора AY-3-8910.

Hacker Zone - "фрикинг": Халявные звонки на таксофонах. Бесплатные звонки в любую точку мира.

Перспективы - Dune для Спектрума от Сосюра Игоря.

Есть мнение - Mad Killer уличает Инфорком в продажности PC.

Рабочий стол - JPEG/GIF laboratory 1.1: программа для просмотра картинок в формате JPEG/GIF.

Рабочий стол - General Sound AY Emulator v1.0

Рабочий стол - обзор утилиты для поиска музыкальных файлов Pro Tracker 3.X Mod Finder v1.2

Игромания - Архивариус: обзор не очень свежей но интересно адвентюры "Последняя авантюра".

Игромания - Wolf 2004: Мир увидел то, над чем трудился Alone Coder целых 8-мь лет!!

Железячки - Кое-что о CMOS-часах: доработанная схема от Alone Coder'a.

Железячки - обзор некоторых современных контроллеров для работы с внешними накопителями информации для ZX-Spectrum.

Веселуха - Жизнь простого сисадмина И печальна и тосклива если рядом нету пива: Сисадмину посвящается.

Веселуха - юмористический рассказ: Я МАШИНА.

Веселуха - Компьютерные анекдоты.

Иной мир - Radeon X700: недорогая основа для геймерских карт.

Разное - отчет Rob F. с Украинской тусовки SpeXtream'2004.

Разное - старости: для чего нужны программы, особенно игровые и как их делать хорошо.

Разное - Конкурс от групы P7S для патриотов Спектрума!

Разное - Интервью с DESALEX'ом/XPJ.

Разное - интервью с автором одного из самых ожидаемых игровых проектов, игры Dune: The Battle for Arakkis.

Разное - интервью с автором нашумевшей демки под VIC-20 - Viznut/PWP.

Разное - интервью с известным Английским спектрумистом Gasman/Raww arse.

Разное - Интервью с Random'om взятое на Construction Chaos 2004.

Разное - Реклама - двигатель торговли и не только.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
IS-DOS - программистам: Оконная система IS-DOS
Вступление - Хаюшки, дамы и господа. Вот и выходит в свет 5-ый номер ОРЕХ'а...
Печатается с продолж. - Как ломаются полуоси (окончание, часть 3).
BBS - список станций BBS ZXNet.
Программирование - Программа пропорциональной печати и Windows (позволяет выводить на экран 4 вида окон).

В этот день...   25 апреля