PDA

Просмотр полной версии : Simple Viewer GL (Linux и macOS)



andreyu
15.01.2017, 17:43
Когда-то я добавил поддержку "стандартного экрана спектрума" (6912 байт) в свой вьювер. Но недавно обнаружил, что на самом деле существует гораздо больше различных форматов. Согласно статье http://hype.retroscene.org/blog/graphics/320.html я узнал о новых для себя форматах: multicolor 8x4/8x2/8x1; standard + border; multicolor 8x4 + border; attributes (53c).

С помощью метода "научного тыка" я сделал частичную (пока не реализован бордюр) поддержку этих форматов.

Но есть несколько вопросов:

Тип формата определяю по размеру файла. Есть ли иной способ определить формат?
В некоторых изображениях одного формата битовая область идет линейно, а в некоторых как в оригинальном спектруме. Как это отличить я не придумал.
С форматом Multicolor 8x4 + Border не разобрался.
Где можно почитать спецификации этих форматов, что бы сделать все по уму?


Скриншот вьювера под Linux с загруженным PNG и информацией о выделенной области изображения:
https://bitbucket.org/repo/XgobE8/images/1203610096-simpleviewergl.png

Вьювер написан для Linux и macOS. Для создания окна использует glfw3. Для загрузки некоторых форматов используются сторонние библиотеки (libpng, giflib, libtiff, libjpeg), для остальных свои собственные велосипеды (PSD, AGE, DDS, ICO, PPM, XWD, XPM, TARGA). Исходный код находится тут:
https://bitbucket.org/andreyu/simple-viewer-gl

Версия 2.75:

Добавлена поддержка формата XPM (собственная реализация).
Убрана зависимость от библиотеки libconfig++ в пользу ini-подобного конфига.
Улучшена поддержка форматов DDS, ICO и XWD.
Добавлена поддержка формана TARGA (собственная реализация).
Обновлена палитра ZX-Spectrum (теперь это PULSAR, как на "железном" ZX).
Добавлена возможность сохранять зум (переключается по хоткею <shift>+<s>).
Исправлена ошибка с фильтрацией текстур.
Улучшено сканирование директории, поддержка drag-n-drop списка файлов.


Клонирование репозитория (для новых пользователей):

$ git clone https://bitbucket.org/andreyu/simple-viewer-gl.git
$ cd simple-viewer-gl
$ make release

Обновление до последней версии:

$ cd simple-viewer-gl
$ git checkout master
$ git pull
$ make clean
$ make release

goodboy
15.01.2017, 18:49
узнал о новых для себя форматах
http://multiartist.untergrund.net/
(в галерее можно скачать картинки для проверки правильности)

zebest
15.01.2017, 19:24
standard + border; multicolor 8x4 + border
нет таких форматов. да и не надо, а отдельные примеры - не щитаюЦЦа форматом)
Бордюр (хоть и с картинкаме, хоть с мультитриколором) удобно хранить в .xpm, и ничего выдумывать не надо.
Когда нибудь да доделаю сохранение.

andreyu
15.01.2017, 23:47
нет таких форматов. да и не надо, а отдельные примеры - не щитаюЦЦа форматом)
По ссылке retroscene.org утверждается обратное. Поиск по базе данных zxart.ee подтверждает наличие картинок в таких форматах.


Бордюр (хоть и с картинкаме, хоть с мультитриколором) удобно хранить в .xpm, и ничего выдумывать не надо.
В таком случае лучше вообще использовать PNG. А не xpm, который представляет из себя "c-array с описанием в текстовом формате" (кстати, мой вьювер его тоже умеет) и является нативным только для Xorg.


Когда нибудь да доделаю сохранение.
Вы о чем?

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


http://multiartist.untergrund.net/
Спасибо за ссылку, почитаю.


(в галерее можно скачать картинки для проверки правильности)
Я пользовался картинками из zxart.ee - но это все тот же метод "научного тыка".
К примеру есть форматы multicolor 8x4, 8x2 и 8x1 - для первых двух битовые данные лежат как для standard spectrum screen, а для 8x1 данные лежат "нормализованные". Это фича такая?

zebest
16.01.2017, 00:02
Поиск по базе данных zxart.ee подтверждает наличие картинок в таких форматах.
картинки - есть , формата - нет. Покажите хоть ОДИН! файл и вьювер для него, а еще лучше - граф. редактор под этот (не)суйщействующий формат
А так - пустое...
xpm - ну да, текстовый формат, но для описания бордюра подходит как нельзя кстати, а так да, и у меня есть сотни картинок бордюрных в формате .brd, но в xpm они было бы гораздо интереснее в плане редактирования , ну и просмотра.
Ладно. Повторюсь, пустое, я понял. край.
За вьювер спасибо,

andreyu
16.01.2017, 00:49
картинки - есть , формата - нет. Покажите хоть ОДИН! файл и вьювер для него, а еще лучше - граф. редактор под этот (не)суйщействующий формат
Файл есть в базе данных, ссылку на который я дал выше. Вьювер, как минимум мой вьювер умеет (ну или пытается уметь).
Вообще я не совсем понимаю, что вы пытаетесь мне сказать. Вроде в топике я явно сказал, что меня интересует.


xpm - ну да, текстовый формат, но для описания бордюра подходит как нельзя кстати,
Он подходит не более, чем любой растровый формат.


а так да, и у меня есть сотни картинок бордюрных в формате .brd,
Это прекрасно. Но вы не единственный, кто обладает базой картинок в этом формате. Вопрос стоит не в базе данных, а в спецификации на формат.


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

andreyu
31.01.2017, 14:44
Влил изменения из development ветки в master. В планах довести до ума поддержку бордюра в ZX-Spectrum screen и добавить свой загрузчик BMP формата, вместо кривого ImLib2.

rajdee
31.01.2017, 22:57
Покажите хоть ОДИН! файл и вьювер для него, а еще лучше - граф. редактор под этот (не)суйщействующий формат
http://multiartist.untergrund.net

AzAtom
05.02.2017, 13:24
В таком случае лучше вообще использовать PNG.
Может, тогда будет лучше использовать TIFF?

Тогда в стандартном тэге 1 битного изображения можно хранить пиксели. Строки будут идти последовательно, а при выводе на экран спектрума надо перетасовать. В этом случае 2 плюса: Картинку можно будет просмотреть на PC любым просмотрщиком и можно будет сохранять картинки больше или меньше разрешения, чем стандартные 256х192.

Так же, надо будет ввести тэги для атрибутов. Один для стандартных и ещё 3 для мультиколора.

Следом за этим комплектом будет идти вторая картинка для гигаскрина.

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

И ещё вопрос по упорядочиванию атрибутов для мультиколора. Как лучше, последовательно по 768 байт или рядом идущие 2-4-8 байт относятся к 1 знакоместу?

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

Итак:
- Наличие одной картинки означает чб изображение.
- Наличие картинки и тэга атрибутов означает цветную картинку. Тут возможны варианты стандарт 8х8 или мультиколор 8х4, 8х2 и 8х1.
- Наличие 2 таких комплектов картинок означает гигаскрин.
- Наличие 3 шт 1 битовых картинок без тэга атрибутов означает триколор. Тут, конечно, возможно наличие атрибутов соответствующих цветов, но нужно ли оно? Думаю, не нужно.

andreyu
05.02.2017, 16:23
Вы предлагаете придумать свой формат. А я веду речь о уже существующих форматах.

AzAtom
05.02.2017, 17:00
А есть уже существующий нормальный и универсальный? Скачал я с того сайта файлы с расширениями scr, mg2, mg4, mg8, 3, mgs. Последний я вообще не понял, там 16 байт атрибутов на знакоместо лежит. Ну и зачем этот зоопарк, если можно всё уютно положить в уже давно существующий формат, получив возможность предварительного просмотра и на других платформах? Более того, TIFF был так и задуман, чтобы можно было добавлять дополнительные тэги.
Дело хозяйское, конечно...

andreyu
07.02.2017, 20:27
А есть уже существующий нормальный и универсальный?
Существующие уже есть.

Что такое нормальный для меня загадка. К примеру, BMP нормальный формат? А его заголовок весьма своеобразен. Более того, заголовок OS/2 несовместим с заголовком Windows Bitmap. В свою очередь заголовок Windows Bitmap существует как минимум в трех ходовых версиях. Данные в BMP могут быть незапакованными, RLE, JPEG, PNG. И это не считая различной битности самого битмапа. Мне сложно назвать этот формат нормальным. Но он существует.

Универсальный ли это формат? На мой взгляд, совсем не универсальный.


Скачал я с того сайта файлы с расширениями scr, mg2, mg4, mg8, 3, mgs. Последний я вообще не понял, там 16 байт атрибутов на знакоместо лежит.
Мне непонятна ваша претензия.


Ну и зачем этот зоопарк, если можно всё уютно положить в уже давно существующий формат, получив возможность предварительного просмотра и на других платформах?
Вы этот вопрос задайте тому, кто придумал эти форматы.


Более того, TIFF был так и задуман, чтобы можно было добавлять дополнительные тэги.
TIFF - это наследник IFF. От IFF отпочковалось много форматов.
А теги (полагаю, речь все же о чанках) можно хранить во многих форматах. Тот же PNG, хоть и не наследник IFF, но тоже представляет из себя набор чанков.


Дело хозяйское, конечно...
Вы о том, что я озадачился поддержкой форматов ZX-Spectrum скрина в своем вьювере? Ну да, хозяйское. Есть у меня такое желание, поддерживать те форматы, с которыми мне приходится сталкиваться. Это проще, чем уговаривать каждого из авторов zx-spectrum скрина поддерживать более распространенные форматы.