Перейти к содержимому


Фотография

Новый формат картинок и отрисовки Pix

Lua

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Оффлайн   MeXaN1cK

MeXaN1cK
  • Пользователи
  • Сообщений: 43
  • Уровень сигнала: 7,76%
  • В игре: 62 час. 48 мин.

Награды

              

Отправлено 20 Май 2018 - 23:32

*
Популярное сообщение!

Я вас категорически приветствую! 

Сегодня я хочу представить вам новый формат для изображений для OpenComputers!

Данный формат был придумал в соавторстве с @Alexc.

 

Начну я с того, как устроен процесс конвертации картинки (ну и самого формата тоже):

  1. Определяются базовые цвета картинки (пара цветов -baseFore, baseBack -  которые чаще всего встречаются на исходном изображении), преобразуются в цвета opencomputers и записываются в файл вместе с размерами картинки.
  2. Сканируется картинка по паре пикселей по координатам x y * 2 - 1 и x y * 2, чтобы получилась пара цветов (fore и back). Из них формируются "цепочки" вида : { [back] = { [fore] = {x,y,str} } где back и fore - цвета "верхнего" и "нижнего" пикселей, а {x,y,str} - сама цепочка. Пример из 1 картинки: 
    [6712704]={ -- Преобразованный в целочисленное значение цвет для background
        [7895160]={ -- Преобразованный в целочисленное значение цвет для foreground
            {70,31,"▄"} -- Сама цепочка, которая будет отрисована.
        }
        ,[13816530]={
            {65,41,"▄▄"}
        }
        ,[2960685]={
            {95,43,"▄"}
        },[12829635]={
            {95,42,"▄"}
        }
    }

    (Разумеется все это хранится в байткоде, а не в таком виде  :D )

Плюсы и минусы

Плюсы:

  1. Достаточно быстрая скорость отрисовки картинок.
  2. Достаточно небольшой размер конечных файлов (По сравнению с оригиналом в .png - .pix занимает в разы меньше места, а по сравнению с .jpg - больше  :( )

Минусы:

  1. При конвертации и отрисовке используются только 4 символа Юникода: "▄" , "▀" , "█" , " ".
  2. Максимальное разрешение исходной картинки 160х100 пикселей в форматах: .png, .jpg, .bmp.
  3. Нет поддержки шрифтов Брайля (см. пункт 1  :D ).

 

Установка:

 

  1. Скачать сам конвертор, написанный на Kotlin (Спасибо @Totoro =) ) https://github.com/cc-ru/pix/releases
  2. Или же скачать lua версию : 
    pastebin get SYfcHuhr PIXconv.lua
    
    Запускать таким образом: PIXconv file
    Файл будет сохранен в ту же папку, с тем же названием, но с расширением .pix

Так же вместе с конвертором будет скачана программа для отрисовки под названием PIXdraw.lua. 

Если же вы хотите ее скачать отдельно, то: 

pastebin get Bm0JUJnj PIXdraw.lua

Запускать таким образом: PIXdraw file.pix

Скриншоты (как это выглядит в OCEmu и майнкрафте):

 

https://clip2net.com/s/3Ug8qrb

https://clip2net.com/s/3Ug88vV


Сообщение отредактировал MeXaN1cK: 20 Май 2018 - 23:38


#2 Оффлайн   MeXaN1cK

MeXaN1cK
  • Автор темы
  • Пользователи
  • Сообщений: 43
  • Уровень сигнала: 7,76%
  • В игре: 62 час. 48 мин.

Награды

              

Отправлено 29 Май 2018 - 00:00

Так, с конвертором на жаве возникла проблема. Будем фиксить. Скачать можно будет позже там же, но уже под другой версией.

ФИКС

Так, все починино!
Скачать по той же ссылке, файлик будет называться: PIXConvertor.Fixed.jar.

И еще 1 не мало важный момент - на винде при включеном антивирусе не сохраняется почему-то результат работы конвертора.
Будьте внимательны!!!

 

Да, совсем забыл: чтобы отобразить время чтения и отрисовки файла нужно дополнительно указывать еще 1 аргумент, примерно вот так: 

PIXdraw test.pix 1

Сообщение отредактировал MeXaN1cK: 29 Май 2018 - 01:49

  • NEO и lokin135 это нравится





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных