PDA

Просмотр полной версии : Форматы графики



Dec
09.12.2020, 03:49
Господа Вектороводы! У меня есть желание добавить в утилиту DaDither (https://zx-pk.ru/threads/32400-dadither-eshche-odna-programka-dlya-dither-ga-kartinok.html) возможность создания графических файлов для Вектор. Не могли бы вы поделиться ссылками на документацию на ваши графические форматы?

Update

Добавлена конвертация в SPR и RMB/RBR. Скриншот:

https://www.tc4shell.com/zximg/Vector06C.png

Скачать (https://www.tc4shell.com/binary/DaDither.exe).

А еще можно попробовать lister-плагин для TotalCommander и расширение оболочки Windows (https://zx-pk.ru/threads/31106-predprosmotr-snapshotov-v-total-commander-i-windows-explorer.html), позволяющие просматривать SPR, RMB/RBR и SCR прямо в TotalCommander и Проводнике.

ivagor
09.12.2020, 07:21
Было бы очень здорово, но с текстовыми описаниями форматов проблема. Если ориентироваться на 16-цветный режим, то вполне можно конвертить в соответствующий bmp, просмотреть его на векторе не проблема, тонкость только в палитре. С одной стороны все просто, по 3 бита на R и G, 2 бита B. Но до сих пор не пришли к единому стандарту, как переводить векторовскую палитру в "современные" цвета и в разных эмуляторах разные варианты. Есть программа (http://www.sensi.org/scalar/ware/770/), выводящая все возможные цвета на экран.
Для примера скриншоты из двух эмуляторов (emu и VV)
7415074151
Есть еще v06x и emu80, но я прошу прощения у их авторов - чтобы получиться компактный скриншот без искажений цветов надо приложить некоторые усилия, и я надеюсь сами авторы выложат авторские скриншоты (или описания палитры).

Dec
09.12.2020, 07:41
но с текстовыми описаниями форматов проблема
А с чем это связано?

- - - Добавлено - - -

И правильно ли я понимаю, что экран Вектора 256x256, но визуально ужимается до 256x192?

ivagor
09.12.2020, 08:09
А с чем это связано?
Не было желающих писать описания.


правильно ли я понимаю, что экран Вектора 256x256, но визуально ужимается до 256x192?
Этот вопрос я не понял. Ширина активной области изображения 42.67 мкс против 36.57 мкс у спектрумов с пиксельклоком 7 МГц, т.е. на 16.67% шире. Высота строки стандартная, получается картинка выше спековской на 64 строки.

Dec
09.12.2020, 08:16
Не было желающих писать описания.
За столько лет никто не удосужился сделать описание? Печально.


Этот вопрос я не понял.
На внутреннем логическом уровне каковы размеры экрана в пикселях? Т.е. bmp какого размера мне формировать?

Improver
09.12.2020, 09:02
За столько лет никто не удосужился сделать описание? Печально.Дело в том, что в годы расцвета Вектора число форматов практически было равно числу разработчиков, т.е. не было какого-то единого стандарта. Ну и всем было лень писать...


На внутреннем логическом уровне каковы размеры экрана в пикселях? Т.е. bmp какого размера мне формировать?Стандартно 256х256 пикселей при 16 цветах из палитры в 256. Ну или 256х512 при четырёх цветах. Картинка визуально скорее не ужималась до 192 по вертикали, а растягивалась в ширину до пропорций ТВ экрана, 4:3.

ivagor
09.12.2020, 09:15
4:3
С этим я не согласен, мой вариант 5:4. Можно найти соответствующее (местами очень жаркое) обсуждение, но в итоге из авторов эмуляторов со мной согласен только Pyk, автор emu80. Но если не заниматься пропорциональным масштабирванием исходной картинки, то на конверсию это не влияет, реал или эмулятор сами растянут.

Dec
09.12.2020, 10:03
не было какого-то единого стандарта
Но ведь есть же какие-то де-факто наиболее употребляемые форматы. Вроде есть какой-то spr формат?


растягивалась в ширину до пропорций ТВ экрана, 4:3.
Вот об этом я и спрашивал.

- - - Добавлено - - -


Но если не заниматься пропорциональным масштабирванием исходной картинки
Вот имеено этим я занимаюсь в своем конвертере :)

ivagor
09.12.2020, 10:17
Вот имеено этим я занимаюсь в своем конвертере
Хорошо бы сделать эту возможность отключаемой.

Dec
09.12.2020, 10:26
Хорошо бы сделать эту возможность отключаемой.
А для чего?

ivagor
09.12.2020, 11:02
Чтобы конвертер не портил картинку, если она уже желаемого размера и с нужным соотношением сторон

svofski
09.12.2020, 11:03
Dec, чтобы инструментом пользоваться можно было так, как нужно пользователю инструмента, а не так, как решили за него на форуме. И чтобы не пришлось с ним бороться, когда например нужно сконвертировать картинку пиксель к пикселю.

Dec
09.12.2020, 11:19
ivagor, svofski, идея ясна. Вообще, я задумывал сделать жесткие размеры выходной картинки 256x256. Для всех форматов есть опция Stretch, при которой учет pixel aspect ratio отключается и входное изображение растягивается до выходных размеров. Эта опция решает задачу? Или вам требуются произвольные размеры выходной картинки?

И еще вопрос - конвертация в bmp с какой глубиной цвета? 4 бита(16 цветов в палитре) или 8 бит(256 цветов в палитре)?

ivagor
09.12.2020, 12:13
Вообще, я задумывал сделать жесткие размеры выходной картинки 256x256. Для всех форматов есть опция Stretch, при которой учет pixel aspect ratio отключается и входное изображение растягивается до выходных размеров. Эта опция решает задачу?
А можно совсем отключить любое преобразование в пространственной области и трогать только цвет? Т.е. если загружена картинка 128x128 то и на выходе получить картинку аналогичного размера.


4 бита(16 цветов в палитре)
Лучше этот вариант, для векторовских мультиколоров нет стандартного просмотрщика

Dec
09.12.2020, 12:26
А можно совсем отключить любое преобразование в пространственной области и трогать только цвет? Т.е. если загружена картинка 128x128 то и на выходе получить картинку аналогичного размера.
На самом деле это можно делать уже прямо сейчас. В программе есть общий режим Palette, не привязанный к платформе. Все, что нужно сделать, это

1) Открыть палитру в программе (или в папке, в которой расположен exe, создать папку Palettes и скопировать файл с палитрой в эту папку, и программа будет загружать автоматически эту палитру в список палитр).
2) Установить максимальное кол-во цветов в 16.
3) Открыть нужный файл.

Программа сформирует выходной файл в соответствии с конкретными хотелками.

Я хотел добавить именно отдельный режим для формирования полноформатных изображений 256x256.

- - - Добавлено - - -


Лучше этот вариант
Я имел в виду, сможет ли ПО на Вектор самостоятельно соотнести цвет из палитры в bmp к внутреннему индексу?

svofski
09.12.2020, 12:36
Dec, я вряд ли потенциальный пользователь этой утилиты, поэтому плохой ориентир. Если мне нужна графика для Вектора, я преобразую ее программой на Питоне, которая заворачивает все байтики ровно в том виде, в каком они нужны для вывода спрайта в конкретном случае, а то и прямо в набор инструкций.

ivagor
09.12.2020, 13:10
сможет ли ПО на Вектор самостоятельно соотнести цвет из палитры в bmp к внутреннему индексу?
Если при конверсии в 16 цветный bmp использовать палитру VV, то можно конверснуть такой bmp в векторовские форматы как минимум с помощью SPRView, а может и с помощью программы yura (сейчас с ходу не вспомню, какие у нее возможности).
Про все векторовские просмотрщики bmp не скажу, но моя старая процедура поступала очень просто - брала 3 старших бита для R и G и 2 бита для B. Такая простота очевидно не лучший вариант для всех случае, поэтому сейчас если что я для "приведения к вектору" использую sprview, который ищет ближайшие цвета в векторовской палитре (в последней версии как в VV).

ivagor
09.12.2020, 16:03
Нашел очень краткое описание формата графического редактора "Рембрандт" и приложил картинку. Дополню, что формат элемента палитры BBGGGRRR

metamorpho
09.12.2020, 16:38
Dec, отличная программа.

Я заметил, что параметр "Max color count" минимум можно сделать 8. А можно ли его сделать меньше ? Например 2,3,4,5,6,7 ?
Поскольку бывает нужно преобразовать картинку так, чтобы количество цветов в картинке было меньше 8.

NEO SPECTRUMAN
09.12.2020, 18:38
За столько лет никто не удосужился сделать описание? Печально.
ну дык это же очетественные компутеры
тут никто ничего не удосужился
...при том что вектор самый удосуженный среди других :)

LeoN65816
09.12.2020, 21:10
С этим я не согласен, мой вариант 5:4.

"- Ты суслика видишь?
- Нет.
- А он есть!" ;)

PPC
10.12.2020, 03:16
Господа Вектороводы! <snipped> Не могли бы вы поделиться ссылками на документацию на ваши графические форматы?
Ну вот архивчик-вспоможение, надеюсь чем-то поможет. Там вроде слова на человечьем за форматы тоже присутствуют, хотя всё надо проверять. Use the force, read the source, такой подход... Ну а потом форматы эти - чай не Хаффман, не DCT.

Dec
10.12.2020, 03:58
Я заметил, что параметр "Max color count" минимум можно сделать 8. А можно ли его сделать меньше ? Например 2,3,4,5,6,7 ?
Поскольку бывает нужно преобразовать картинку так, чтобы количество цветов в картинке было меньше 8.
Можно, но на малом количестве цветов обычно получается хрень вместо картинки. Или у тебя какие-то специфические картинки с малым количеством цветов?

- - - Добавлено - - -


Ну вот архивчик-вспоможение, надеюсь чем-то поможет.
Спасибо! Ведь можете те же когда захотите )

ivagor
10.12.2020, 08:02
А он есть!
Например (https://zx-pk.ru/threads/21907-demo-effekty-dlya-vektora.html?p=962362&viewfull=1#post962362)

Dec
11.12.2020, 07:11
Добавил конвертацию в SPR. Ссылка в первом посте. Непосредственно опция сохранения SPR файла доступна только если размер выходного изображения 256x256. Палитры на выбор только те, которые предоставил ivagor.

Для режима "Чтобы конвертер не портил картинку, если она уже желаемого размера и с нужным соотношением сторон" нужно
1) Position установить в Centred
2) Pixel aspect ratio установить в 1:1

Может быть кто-нибудь подкинет RMB файликов для тестов, в которых задействованы разные плоскости? А еще у вас есть какие-то RBR файлы.

KTSerg
11.12.2020, 07:33
Я вот что-то не помню, а разве SPR всегда полноэкранный? Спрайт ведь на то и спрайт, что это не большая картинка. И возможно, не всегда все 4 плоскости.
SCR судя по всему всегда полноэкранный.

ivagor
11.12.2020, 07:40
какие-то RBR файлы
Это альтернативное расширение для файлов Рембрандта, отличий в формате нет

Насчет полноэкранности. SPR и SCR полноэкранные 16 цветные, а вот RMB/RBR может быть произвольного размера (с дискретностью байт) и произвольной цветности (2/4/8/16), зато он без сжатия

Dec
11.12.2020, 07:47
SCR полноэкранные 16 цветные
SCR я не стал добавлять, поскольку палитра в нем фиксированная.

RMB/RBR может быть произвольного размера (с дискретностью байт) и произвольной цветности (2/4/8/16)
Я хочу добавить возможность конвертации в RMB/RBR, но мне надо знать, что я создаю правильные файлы. А что бы знать, что я создаю правильные файлы, мне нужно написать просмотрщик. А что бы написать просмотрщик, мне нужны образцы для изучения.

ivagor
11.12.2020, 09:05
SCR я не стал добавлять, поскольку палитра в нем фиксированная.
Строго говоря для scr потом сделали вариант с палитрой в дополнительном файле, но примеров таких файлов у меня вроде нет. Скорее всего необходимость в них отпала в связи с spr, он явно лучше scr.

ivagor
11.12.2020, 17:03
Еще пара примеров картинок рембрандта. Эти не на полный экран, но тоже 16-цветные.

ivagor
11.12.2020, 19:05
Уточню насчет цветов. 16 - это потенциальная цветность данных картинок, т.к. там включены все биты в маске плоскостей, а уникальных цветов в конкретных картинках меньше (в oko 8, в ter 10).

Dec
12.12.2020, 02:52
Вопрос по RBR/RMB. Поскольку высота задается байтом, то выходит, что максимальная высота изображения 255 пикселей. Или ноль в заголовке трактуется как 256?

Вопрос снимется, ноль в заголовке действительно трактуется как 256.

Dec
12.12.2020, 12:07
Добавил конвертацию в RBR/RMB. Ширина картинки должна быть кратна 8.

Также добавил в первом посту ссылку на плагин для TotalCommander и расширение оболочки Windows, позволяющие просматривать SPR, RMB/RBR и SCR прямо в TotalCommander и Проводнике.

ivagor
16.12.2020, 21:46
Пожелание - увеличить диапазон изменения Error diffusion вниз с 70 до 0.

- - - Добавлено - - -

Если ограничение диапазона связано с размером бегунка, то как вариант - ввести два бегунка, грубой и точной подстройки.

Dec
16.12.2020, 21:59
Пожелание - увеличить диапазон изменения Error diffusion вниз с 70 до 0.
Если нужен конкретно ноль, то можно просто выбрать метод дизеринга None.

ivagor
16.12.2020, 22:06
Если нужен конкретно ноль, то можно просто выбрать метод дизеринга None.
Это я видел, но если нужно от 1 до 69 то для этого возможностей нет.

Dec
16.12.2020, 22:23
если нужно от 1 до 69
Это реальная потребность или "шоб было"?

ivagor
17.12.2020, 08:11
Это философский вопрос, общественно-значимые задачи наличие полного диапазона мне не позволит решить. Иногда (раз в один-два года) возвращаюсь к конвертированию графики и хотел сравнить результаты своего конвертера с DaDither.

NEO SPECTRUMAN
23.12.2020, 08:44
Это реальная потребность или "шоб было"?
ну некоторые товарищи хронически не переносят дизеринг
им подавай 3 ступеньки по порогу... :v2_lol:

хотя на совсем мелких картинках
например спрайтах
дизеринг может наделать таких делов что...