Важная информация

User Tag List

Показано с 1 по 2 из 2

Тема: Img2Grf. Конвертор изображений в файлы формата GRF

  1. #1
    Member Аватар для tae1980
    Регистрация
    09.09.2018
    Адрес
    г. Саратов
    Сообщений
    116
    Благодарностей: 24
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Img2Grf. Конвертор изображений в файлы формата GRF

    Конвертор изображений в файлы формата GRF

    Данная программа разрабатывалась с целью подготовки изображений для дальнейшего использования на компьютере Spectrum Profi.

    На текущий момент программа конвертирует не само изображение, а формат его хранения, адаптируя его для просмотра на расширенном экране Profi. Исходными данными являются 1, 4, 8, 24, 32 битные BMP. Но сама программ работает только с файлами с числом цветов не более 16. Изображения с большим количеством цветов приводиться к 16 из 256 цветов палитры 332RGB с использованием внешней программы «Image Magick». Такая форма работы была выбрана исходя из нескольких соображений:

    * Формат BMP один из самых распространенных графических форматов, его легко получить в любом графическом редакторе. И с ним легко работать.

    * Profi обладает скромным, по современным меркам, графическим разрешением 512x240 пикселей, то есть в 99.9% исходное изображение необходимо будет масштабировать и кадрировать. Для чего удобнее использовать такие программы как «Adobe Photoshop». Не вижу смысла, для реализации озвученных целей, писать очередной плохой графический редактор.

    * Profi способен отобразить 16 из палитры в 256 цветов палитры 332RGB (GGGRRRBB). Приведение многоцветной графики (16М и более цветов) к 16 цветам - процесс сложный и трудоемкий. Есть большое количество программ, специализирующихся на этом. При создании рассматриваемой программы я стремился к сочетанию максимальной простоты решений с максимальной эффективностью. Поэтому для привидения изображения к 16 цветам было признано рациональным использовать сторонние программы.

    Следует так же отметить, что цвета в расширенном экране Profi задаются не для каждой точки, а два цвета на каждые 8 точек. Это приводит к неизбежному ухудшению изображения при конвертации. В попытках сведения к минимуму влияния данного ограничения, было разработано несколько алгоритмов перевода. Для разных изображений нужно подбирать оптимальный алгоритм. Так же имеет большое значение методы приведения исходных изображений к 16 цветам, используемые во внешних программах. Опять же тут всё индивидуально.

    Внешние программы для подготовки изображений

    Основным инструментом для подготовки и предварительной обработки изображений является любой графический редактор. Я использую «Adobe Photoshop» так как неплохо его знаю, вы же можете использовать любой другой.

    Дополнительными инструментами могут служить различные конвекторы изображения в формат экрана Spectrum’а и различных дополнительных аппаратно-программных экранных режимов, таких как Multicolor, Gigascreen и другие. А так же графические редакторы под эти режимы, как на IBM PC, так и на Spectrum’e. Качество перевода в таком случае будет выше, так как начальное число цветов значительно меньше и в той или иной степени есть учет того, что каждая точка не может иметь свой цвет. Но всё равно перенос один в один невозможен, так как у таких изображений число отображаемых цветов может быть более 16 (до 102 одновременно выводимых цветов). А также может быть иное строение экрана отличное от 2 цвета на 8 горизонтальных точек. То есть такие изображения все равно необходимо приводить к 16 из 256 цветов палитры 332RGB. Подробнее о подобных графических режимах можно прочитать в статье «ZX Spectrum Graphics FAQ» тут: http://hypr.ru/blog/graphics/320.html

    Ещё хотелось бы отметить следующую программу, которую можно использовать в качестве дополнительного инструментария:

    * multiArtist - программа на IBM PC для создания мультигигаскрин-графики для ZX Spectrum (графический редактор). Она умеет работать с большим количеством графических режимов, а так же сохранять изображения в формат PNG. Подробное описание можно посмотреть тут: http://multiartist.untergrund.net/index.php

    Использование программы «Image Magick»

    Использование этой программы проходит прозрачно для пользователя. Конвертор сам перед конвертированием в формат Profi создаст запрос для приведения многоцветного изображения к 16 из 256 цветам палитры 332RGB, автоматически получит результат и отобразит его на экране. Главное что бы программа была установлена на компьютер. Если этого нет, то при попытке сформировать запрос обработки многоцветного изображения конвектор закроется по ошибке. Дистрибутив программы «Image Magick» для OS Windows 32-64 и OS/2 можно найти в архиве, для остальных OS можно скачать здесь: https://imagemagick.org/script/download.php

    У пользователя есть возможность повлиять на результат обработку изображения через указания следующих параметров:

    * Включение/отключение нормализации изображения.
    * Выбора одного из трех алгоритма дизеринга.

    Ни каких иных действий над изображением не производится. Результат обработки всегда будет отличным от результата обработки этого же изображения, в какой либо другой программе, например в «Adobe Photoshop». Хотя визуально это может быть незаметно. Что очень сильно влияет на результат конверсии. Поэтому для получения оптимальных результатов, рекомендуется подготавливать несколько вариантов изображений с использованием разных программ.

    Адаптация изображения в «Adobe Photoshop»

    Для «Adobe Photoshop» алгоритм подготовки изображения следующий:

    * Загруженное изображение необходимо отмасштабировать и кадрировать под необходимый для ваших целей размер. При необходимости можно использовать инструмент «Свободная трансформация» (Edit/Free Transform) для изменения пропорций изображения. С учётом скромной разрешающей способности экрана Profi следует оставлять на изображении один главный объект, всё остальное лучше отрезать. Лишний фон и обстановка будут только отвлекать взгляд и ухудшать качество отображения действительно важных деталей.

    * Теперь нужно проиндексировать цвет, то есть привести число цветов к 256 из палитры Profi. Для чего открываем окно инструмента «Индексация цвета» (Image/Mode/Indexed Color). В пункте «Palettе» нужно выбрать пункт «Local (Adaptive)», для пункта «Forced» открыть выпадающий список и в нём выбрать поле «Custom…». В открывшемся окне «Forced Colors», нажать кнопку «Load…» и загрузить файл «profi rgb.act» c 256 цветной палитрой Profi (он входит в комплект программы). Подтвердите действие, выбрав «OK». В пункте «Colors» у вас появиться цифра «256».

    * Доступно четыре алгоритма уменьшая цветности изображения. Выбираются они в группе «Options», в пункте «Dither:». Это: None (без адаптации цветов), Diffusion, Pattern, Noise. Если стоит галочка у пункта «Preview», то «Adobe Photoshop» при выборе любого алгоритма автоматических применит его к текущему изображению, позволив тем самым быстро увидеть результат его работы, и, при необходимости, сменить алгоритм. Для большинства изображений обычно хорошо подходит алгоритм Diffusion, но лучше испробовать все имеющиеся и подготовить несколько файлов для дальнейшей работы.

    * Теперь можно подтвердить действия, выбрав «OK». Число цветов на картинке уменьшается до 256 цвет из палитры Profi.

    * Следующим действием выбираем инструмент «RGB Color» (Image/Mode/RGB Color). Мы возвращаем изображению 16М цветов, но так как на нем присутствуют только цвета палитры Profi, это чисто техническая операция. Её необходимость вызвана тем, что нельзя напрямую один индексированный цвет (256 цветов) конвертировать в другой (16 цветов из 256).

    * Теперь снова открываем окно инструмента «Индексация цвета» (Image/Mode/Indexed Color). Так же в пункте «Palettе» нужно выбрать пункт «Local (Adaptive)», для пункта «Forced» открыть выпадающий список и в нём выбрать пункт «Black and White». Далее в пункте «Colors» вводим цифру 16. На этом этапе так же нужно выбрать один из четырех алгоритмов уменьшения цветности. Ставя/убирая галочку напротив пункта «Transparency», так же можно несколько влиять на получаемое изображение. Подтверждаем действия, выбрав «OK».

    Теперь картинка состоит только из 16 цветов из 256 палитры Profi. Сохраняем её в формат BMP. При сохранении, в окне параметров ставим галочку напротив «4 bit», в этом случай файл будет занимать в два раза меньше места.

    Подготовку исходного изображения в программе «Adobe Photoshop» можно считать завершенной.

    Конверсия изображения в GRF

    В самом конверторе грузим подготовленное изображение, для чего нажатием на кнопку «Загрузить исходное изображение», открываем окно выбора файла. После загрузки изображения оно отобразиться в отдельном окне, а в окне программы заполнятся информационные поля.

    Для смягчения ограничения расширенного экран Profi, по которому восемь идущих подряд горизонтальных точек (1 байт) могут иметь только два цвета, была разработано несколько алгоритмов конверсии изображения, которые можно выбрать в соответствующем пункте:

    1. По байту. Два самых частых цвета. - Тут я думаю всё понятно, берем за основу два наиболее часто встречающийся цвета.

    2. По байту. Самый темный и светлый цвета. - Принцип тот же, только берутся два противоположные по яркости цвета. Цвета сравниваются по градации серости. В ряде случаев этот метод дает очень приличный результат с отображением большинства мелких деталей, но, как правило, есть искажения основных цветов, так как самые контрастные цвета, далеко не самые частые.

    3. Комбинированный, совместный учёт крайних. - Комбинация первых двух, если оба крайних цвета максимальные/минимальные по яркости в байте, то используется второй метод, иначе первый.

    4. Комбинированный, раздельный учёт крайних. - То же, но крайние цвета оцениваться отдельно. Если какой либо из них самый светлый/темный цвет, он используется как один из основных, вторым использоваться самый частый. Так же есть контроль, что бы цвета ни оказались одинаковыми.

    5. По байту. По крайним цветам. - Тут за основу берутся два крайних цвета в байте.

    6. По полубайтам. Самый частый цвет. - Вот тут интересно. После общения в эхе (особая благодарность Lethargeek, за терпение) и чтения литературы, пришла мысль, что нужно как-то дробить информацию и работать с каждой частью в отдельности. А как это сделать в наших условиях? Только делить байт пополам. Что и было сделано. Байт делиться на два полубайта, для каждого из них определяться самый частый цвет. Которые и используются как основные. Проверяется частота появления у крайних цветов каждого полубайта, если она такая же, как и у признанного самым частым, то используется крайний цвет. Проводится контроль выбранных цветов, если одинаковые, берется следующий цвет из левого полубайта. Если цвета в нём кончились, начинаем их брать из правого полубайта. В результате получаем на изображении хорошую цветопередачу, но теряем часть мелких деталей.

    7. По полубайтам. Самый темный и светлый цвет. - Алгоритм напоминает второй из перечисленных, только выборка цвета ведется по полубайтам. Для каждого из них подсчитываться значение средней серости цветов и определяться самый темный и самый светлый цвет. Далее находим, в каком полубайте самые темные цвета и из него берем темный цвет, а из второго берем светлый цвет. Субъективно, результат получается на 5-10% отличный от расчетов по байту.

    8. По полубайтам. Частые цвета с учетом серости. – Это гибрид 6 и 7 метода, он уравновешивает их недостатки, хотя не ликвидируют полностью. Если в байте до трёх цветов применяться шестой метод с самыми частыми цветами. Если более трех то значения бит графики рассчитываться по крайним цветам по серости, как в 7 методе, а цвета накладываться самые частые, как в методе 6. При таком подходе видно больше деталей, чем в 6 методе, но меньше чем в 7 методе, а цвета искажаются меньше чем в 7 методе, но больше чем в 6. Так же в ряде мест может появиться дополнительная линейность, отсутствующая в 7 методе. Несмотря на, это итоговый результат получается весьма сбалансированный.

    Ограничение двух цветов на 8 точек (1 байт), не позволяет перенести картинку один в один. При переносе часть деталей теряется, на изображении появляются короткие горизонтальные полосы (линейчатость). Вызваны они тем, что если в исходных 8 горизонтальных точках было более двух цветов, то после выбора тем или иным способом двух основных, остальные приводиться к ним. Побороть этот эффект полностью, к сожалению, невозможно. Для большинства изображений самым оптимальным будет восьмой метод, он и стоит по умолчанию.

    После конверсии изображения в GRF откроется окно с результатом работы, заполнятся информационные поля, а так же выведется палитра используемых 16 цветов.

    Сохранить результат можно нажатием в блоке команд «Сохранить» на кнопку «GRF для Profi». Там же кнопкой «Обзорная BMP» можно сохранить результат в формате BMP.

    Запустить автоматическую обработку всех файлов в директории с установленными параметрами можно по кнопке «Конвертировать каталог».

    Работа с палитрой

    Реализован минимальный функционал работы с палитрой 16 цветов для GRF. В ней можно изменять цвета на любые другие из 256 цветов палитры Profi. Для чего нужно выбрать цвет мышкой, и в открывшемся окне указать желаемый цвет.

    В блоке команд «Действия с палитрой GRF», можно сохранить текущую палитру в файл, а так же загрузить ранее сохраненную палитру. По нажатию кнопки «Обновить» происходит обновление изображения в окне «GRF» с учетом измененной палитры.

    Состав дистрибутива

    Программа написана на языке программирования Rexx с использованием оконной библиотеки «RexxDW». По сути, представляет собой исполняемый текстовый файл в кодировке 886. Его можно открыть, просмотреть и исправить в любом текстовом редакторе.

    Таким образом, программа распространяется с открытым исходным кодом, что дает возможность пользователю вносить любые изменения. Изменения вы вносите на свой страх и риск, я не будут нести за них ответственность. Но и возражать против творческих порывов не буду. Только прошу отправлять мне файлы с вашими изменениями. Что бы интересные идеи я мог внедрить у себя.

    Критика класса «код фуфло» не принимается совсем. Если считаете, что сможете сделать лучше – вперед, исходники открыты. А если будут конструктивные предложения, с большим удовольствием их выслушаю.

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

    Использование языка Rexx делает программу кроссплатформенной. Она без изменений будет работать в таких OS как Windows 32-64, OS/2, Unix, MacOS. Нужно только установить соответствующую версию интерпретатора «Regina Rexx» и библиотеки «RexxDW».

    Rexx интерпретируемый язык, а значит далеко на самый быстрый. Отсюда и невысокая скорость работы. Но это мои любимый язык программирования, и мне просто приятно на нем писать. А скорость в данном случае не самый важный фактор. Можно попробовать упаковать программу в запускаемый файл (.exe), но он создается под конкретную OS и кроссплатформенность будет потеряна.

    Установочные пакеты для OS Windows 32-64 и OS/2, можно найти в дистрибутиве программы. Для остальных OS их можно скачать здесь:
    * Интерпретатор «Regina Rexx»: https://sourceforge.net/projects/regina-rexx/files/
    * Библиотека «RexxDW»: https://sourceforge.net/projects/rexxdw/files/

    При инсталляции в OS Windows 32-64, в окне выбора ассоциируемых файлов «File Associations», нужно выбрать все типы кроме «cmd». А в окне «Regina Stack Service», нужно выбрать оба пункта «Install Regina Stack Service» и «Start Regina Stack Service».

    При инсталляции в OS OS/2 нужно либо распаковать архивы в директории, которые прописаны в LIBPATH и PATH, либо распаковать в любое место и прописать эти пути в LIBPATH и PATH. Я так же создаю новый тип файлов для расширения «rexx», параллельно стандартному расширения «cmd», для которого прописываю запуск файлов через «pmregina». Это гарантирует запуск библиотеки «RexxDW» через интерпретатор «Regina Rexx», а не через стандартный интерпретатор OS.

    В состав дистрибутива программы входят следующие файлы:

    Img2grf.rexx - Собственно сам конвертор. В OS Windows 32-64 можно запускать его напрямую, но тогда будет открываться дополнительное текстовое окно. Оно ни как не влияет на работу программы и ни как не используется в процессе её работы.
    Start.bat - файл для запуска конвертора в OS Windows 32-64 без текстового окна.
    Start.cmd - файл для запуска конвертора в OS OS/2, без создания нового типа файлов для расширения «rexx».
    profi rgb.act - Палитра Profi 332RGB для «Adobe Photoshop» и других графических программ.
    colormap_332.png – Файл с палитрой Profi 332RGB, необходимый для работы программы «Image Magick».
    Help.doc - Описание программы в формате WORD.
    /Distrib - Установочные пакеты интерпретатора «Regina Rexx», библиотеки «RexxDW» и «Image Magick» для Windows 32-64 и OS/2.
    multiArtist/*.bmp – изображения, взятые с сайта графического редактора «multiArtist» и приведенные к 16 цветам.
    *.bmp – черно-белые, 16 цветные и многоцветные изображения, подготовленные в «Adobe Photoshop».

    Планы

    * Изучаю методы и алгоритмы работы с многоцветными изображениям. Возможно, конверсия таких изображений даст лучший результат. Но быстрый результат не обещаю, как вообще не обещаю какой либо результат.

    * Хочу наладить загрузку изображений с MSX2.

    Об остальном пока умолчу, что бы ни сглазить.

    Благодарности

    * Валентину Кузнецову 2:5053/51, за многочисленные советы и терпения меня уже 20 лет, включая ночные телефонные звонки.
    * Вадиму Черткову (Vadim), за многолетнюю поддержку и развитие Spectum Profi в целом и разработку Q-Dos в частности.
    * Олега Стариченко (solegstar), за многолетнюю поддержку и развитие Spectum Profi, за разработку платы Profi 5.06 и согласие собрать экземпляр для меня. Что собственно и подвигло меня на написание сей программы.
    * Lethargeek, за советы по обработке изображения и терпение моей слабой подготовки по данному вопросу.

    Координаты для связи

    Все замечания, пожелания и предложения можно высылать на адреса:

    Email: tae@azimut21.ru
    Fido: 2:5053/57 Aleksey Tarasow
    Форум https://zx-pk.ru/

    Лицензионное соглашение

    1. Все авторские права на программу принадлежат Тарасову А.Е. (ТАЕ);
    2. Данная версия распространяется бесплатно;
    3. Программа поставляется по принципу "AS IS" ("как есть"). Никакие гарантии не прилагаются и не предусматриваются. Вы используете данное программное обеспечение на свой страх и риск. Автор программы не будет отвечать ни за какие потери или искажения данных, нарушения работоспособности других программ и системы, а также за любую упущенную выгоду в процессе использования или неправильного использования данного программного продукта;
    4. Установка и использование программы означает, что вы понимаете положения настоящего лицензионного соглашения и согласны с ними;

    Ссылка для скачивания IMG2GRF версии 1.0

    Примеры






    [свернуть]
    Последний раз редактировалось tae1980; 15.02.2019 в 16:44.

  2. Эти 7 пользователя(ей) поблагодарили tae1980 за это полезное сообщение:
    alvis (18.02.2019), Black Cat / Era CG (15.02.2019), CLR (20.02.2019), Djoni (15.02.2019), juka1868 (03.03.2019), Oleg N. Cher (15.02.2019), solegstar (15.02.2019)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Master Аватар для Djoni
    Регистрация
    20.02.2005
    Адрес
    Новосибирск
    Сообщений
    858
    Благодарностей: 597
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо , очень нужная утилита

    Скрытый текст

    Profi v5.03/1024k/палитра/FDD3,5""/FDD5,25"/HDD/XT-Keyb/Covox
    Pentagon-1024 sl v 1.4 upgrade #EFF7 Gluk RTC
    ZXM-Phoenix 1024k
    ATM Turbo 2+ v7.10 512k
    HIMAC HR42.04 48K
    HIMAC 128
    Ленинград 1
    [свернуть]

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Конвертер изображений из PC в ZX-Spectrum
    от Northwood в разделе Утилиты
    Ответов: 16
    Последнее: 13.06.2019, 17:11
  2. Ответов: 7
    Последнее: 24.07.2013, 16:50
  3. Описание формата .TAP
    от ILoveSpeccy в разделе Unsorted
    Ответов: 1
    Последнее: 20.01.2008, 19:18
  4. Ответов: 18
    Последнее: 18.06.2006, 15:50

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •