Конверсия изображения в 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. Установка и использование программы означает, что вы понимаете положения настоящего лицензионного соглашения и согласны с ними;

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: