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


Фотография

Конвертер изображений с поддержкой дизеринга и шрифта Брайля (до 320х200 пикселей)

конвертер изображение шрифт Брайля графика java

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

#1 Оффлайн   ECS

ECS
  • Гуру
  • Сообщений: 167
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 26 Апрель 2017 - 11:07

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

ZSgoRYY.png
 
Хочу поделиться с вами конвертером изображений, позволяющим использовать ограниченное пространство мониторов наиболее эффективным образом, а также библиотеками для быстрой отрисовки результата. Поддержка шрифта Брайля позволяет получать изображения размером до 320х200 визуальных точек при физическом ограничении мониторов в 160х50 символов, а алгоритм дизеринга помогает избавиться от визуальных ограничений 256-цветной палитры.
 
Ссылка для загрузки конвертера:
https://github.com/I...geConverter.jar
 
Команда для установки ПО для отрисовки:

pastebin run ng73uZqT

Исходники для желающих:

Практический пример:
 
Чтобы отобразить картинку на экране, для начала ее необходимо сконвертировать и скопировать любым удобным образом на диск комьютера (напрямую в папку мира, через файловый хостинг и т.п.). В моем случае картинка называется Triss.pic:
 
ludNEw4.jpg?1
 
Затем напишем следующий код или запустим установившуюся программу draw.lua с аргументом "Triss.pic":

local args = {...}
local image = require("image")
local buffer = require("doubleBuffering")

-- Очищаем экранный буфер черным цветом
buffer.clear(0x0)
-- Загружаем и рисуем изображение в буфер
buffer.image(1, 1, image.load(args[1]))
-- Отрисовываем содержимое буфера в принудительном режиме
buffer.draw(true)

Результат не заставит себя ждать:
 
VT6Cb7k.png?1
 
Также привожу в качестве демонстрации несколько отрисованных изображений: 
 
bKT7AM7.png?1
 
a2QqFxH.png?1
 
UjDaH05.png?1
 
v8ICEQq.png?1
 
lcWlk9n.png?1


Сообщение отредактировал ECS: 28 Декабрь 2017 - 09:20


#2 Оффлайн   ProShow

ProShow
  • Пользователи
  • Сообщений: 14
  • Уровень сигнала: 2,18%
  • В игре: 13 час. 21 мин.

Отправлено 28 Апрель 2017 - 22:59

Ну ты как обычно) Давно слежу за твоими прогами. Отлично делаешь!



#3 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 167
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 29 Апрель 2017 - 04:49

Ну ты как обычно) Давно слежу за твоими прогами. Отлично делаешь!

 

Спасибо, спасибо, приятно. К слову о проге: в конвертер добавлена поддержка более совершенного метода кодирования OCIF6, в результате чего пикчи на дисках весят в разы меньше.



#4 Оффлайн   Laine_prikol

Laine_prikol
  • Пользователи
  • Сообщений: 126
  • Уровень сигнала: 0,67%
  • В игре: 4 час. 6 мин.

Награды

        

Отправлено 28 Май 2017 - 15:16

Все-таки это не очень важно но, я уже на ютубе писал что: 160х50 точек это некорректно, разрешение монитора ОС: 160х50 Символов, а не точек. Символ в ОС вроде 8х4 точек.



#5 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 689
  • Уровень сигнала: 0,36%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 29 Май 2017 - 17:20

Все-таки это не очень важно но, я уже на ютубе писал что: 160х50 точек это некорректно, разрешение монитора ОС: 160х50 Символов, а не точек. Символ в ОС вроде 8х4 точек.

 

8 на 4 это опять таки символы - символы алфавита Брайля.

А вообще не вижу смысла придираться к словам. Слово "точки" ничем не хуже слова "символы" для определения разрешения монитора. А учитывая, что речь не о тексте, а именно о способности монитора отрисовывать растровые изображения, слово "точки" куда лучше чем "символы" или "пиксели" передаёт смысл того, что хотел сказать автор.



#6 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 167
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 29 Май 2017 - 21:44

Все-таки это не очень важно но, я уже на ютубе писал что: 160х50 точек это некорректно, разрешение монитора ОС: 160х50 Символов, а не точек. Символ в ОС вроде 8х4 точек.

 

Ах ты ж чертов педант. Ладно, ладно, исправил хд



#7 Оффлайн   Zemkekop

Zemkekop
  • Пользователи
  • Сообщений: 1
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2017 - 14:12

привет! Игорь, а ссылку вводить с точками?



#8 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 689
  • Уровень сигнала: 0,36%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 03 Июль 2017 - 14:27

привет! Игорь, а ссылку вводить с точками?

 

Если ты про ссылку на скачивание, то точки - это просто форум её так сократил. В полном виде она выглядит так:

https://github.com/IgorTimofeev/OpenComputers/raw/master/ImageConverter/out/artifacts/ImageConverter_jar/ImageConverter.jar

И это программа не для OC, а для настоящего компьютера. Написана на Java.


Сообщение отредактировал Totoro: 03 Июль 2017 - 14:27


#9 Оффлайн   Koteyk0o

Koteyk0o
  • Пользователи
  • Сообщений: 40
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 11 Июль 2017 - 19:36

bcef26c21c.png

Прога не работает, или я делаю что-то не так?



#10 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 962
  • Уровень сигнала: 187,35%
  • В игре: 1148 час. 24 мин.

Награды

                                               

Отправлено 11 Июль 2017 - 20:15

Полный путь указывай, от корня.



#11 Оффлайн   Koteyk0o

Koteyk0o
  • Пользователи
  • Сообщений: 40
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 11 Июль 2017 - 21:39

Полный путь указывай, от корня.

спасибо большое



#12 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 167
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 28 Декабрь 2017 - 09:14

Добавлена поддержка строковой конвертации. Эта фича довольно полезна в тех случаях, когда нет возможности/желания перегружать хард тонной мелких зависимых картинок ради одной программы:
 
nzlo6cv.png?2
 
К примеру, грустную девку со скрина выше можно отрисовать следующим образом:

local image = require("image")
local devka = image.fromString([[200B305B00⡸2A6100⢲619100⢐61BD00⣴92C300⢀BDC800⢮C2F300⣲C2F300⣵C2F300⣵C2F300⡧C2F300⡷C2F300⢗98F300⣄2AC300⣛2BC300⠛309200⠏286000⠁296100⠈2AF300⢠30D600⣶8DD600⣦92F300⣶8DC300⣄619200⣦616100⠀536100⡧305B00⡑302A00⢇2B2A00⢎293000⡑283000⠌28AC00⠐2A6100⢴608D00⢕8D9200⣴92C200⣼C2F300⣽C8F300⢺C8F400⢀CDF900⣶F3F900⣸F3FF00⣴F8FF00⣶CDFF00⣦C8F900⡌30C200⢇288D00⣤2B6000⣀295C00⢆2AC300⢰35C800⡏98FF00⢻53FF00⡿92D700⢿BDF300⣷929800⠅618D00⠄536100⡟2A5B00⢌2B2A00⡑2B2A00⣜2B3000⢷283000⠐00AA00⠚5B6100⢕619200⢾8DBD00⢐BDC300⠨C7F300⣾CDF400⡣C9F900⣮F9FE00⢐D3FE00⣛FFFF00⠀FFFF00⠀D7FF00⣷92F900⣏539200⣠308D00⢬5C9200⣵5B6100⢸2A9200⢸299200⠇29F900⠙299200⢰61F300⠾92C800⢟7E9300⠌618D00⠁536100⣏305B00⢂302A00⡱2B2A00⡱2B2900⣯283000⡀002800⡗5B6100⢕609200⢽8CBD00⢿92C300⠈C2F300⢿C8F800⡽CDF900⠐CDF900⠙CEF900⡯C7FF00⠿8DFF00⠿C2FF00⠟C7F300⠿309200⡏5B9200⡽309200⠟308C00⢸5B6100⢮285B00⡆283500⢡299200⢶309200⣼8D9200⡿617E00⠅616600⡀2A6100⢇305C00⡇2B2A00⣇292A00⠄282900⠇282800⠀002800⣏285C00⢀285B00⠈286100⠉288D00⠉2B9200⠉29BD00⠉29C200⠉29C200⠉2BC200⠉29C200⠉296100⣙2ABD00⡉28BD00⠉306100⢅2B5B00⢀2A6100⢣539200⢸2A6100⠝2B3000⢧2B5300⠘292C00⡀295C00⡁285B00⡁295C00⢉616100⠀2A6100⡣305C00⠁2B3000⣯293000⠠282800⠀002800⣷002800⢧295B00⢐283000⠌285B00⠁285B00⠉285C00⠉285C00⠉286100⠙296100⢹308D00⠋538D00⠉289200⠉286600⠃282B00⣜2A6100⢹282A00⡀2B6100⠨2A6100⢺296100⠇2B2900⠨285600⠄2B5C00⢲308C00⠋296100⠛286100⠛538D00⠠308D00⡇295C00⢀2B5C00⢀285B00⡀282900⠁282900⠠002800⣆295B00⠐282900⡨283000⠢282A00⢜2B6100⢀2B6100⣤2B8D00⣴2A9200⣶2A9200⣶5B9200⣶307E00⢦2B8C00⣠288D00⣀005C00⣈283000⡁002B00⠁005C00⠹283000⣮2B5600⡀2B2A00⢶2B8000⢰539800⣄306100⡱305C00⡱308D00⢸306100⡆2B8D00⠴2B6100⢢295C00⣆286100⡀000100⠐002800⣑295B00⠈282900⠰2B5B00⠐306100⢺2A6100⠻2A6100⠻536600⠿308D00⠿306100⡿2B6100⡟2B6100⠘285C00⠉286100⠙288D00⠻308D00⠷5B8D00⡕2B5C00⢐2B5600⠄285600⠐283000⠳2B5500⡘539800⠉549800⠁306100⣶296100⣾2A5500⣦296100⣤286100⣤282A00⡭282A00⣇002900⢿282900⠑285C00⠤286100⠴285B00⠴282A00⢖2B2A00⢝285B00⠂285300⠓286100⠓285B00⠹306100⠦608D00⣹285B00⠁282A00⡙282900⠁002800⢋005C00⠈282A00⢉282900⡀002800⣵282800⠀282900⠩2A5500⢺536100⠋535500⠿615500⢍617E00⠎2A5500⡷2A6100⡏2B2A00⣟282A00⡇282900⠨283000⢵282A00⡁002900⢯002800⣾002800⢽002800⣯282900⢤282900⢢002900⣾002800⣮006100⠸288D00⠏282A00⠊282900⠁002800⢋002800⣴002900⢿282A00⠃282800⠀002800⡿002800⣽282900⠈283100⠊285300⠍285C00⠉286100⠉285500⠛2B6100⠢306100⠃2B2A00⡿282A00⡇282900⠨2B3000⡯283000⡢002800⣧002800⡻002800⡯282800⠀282800⠀282A00⢜283000⢡005B00⢠296100⣶298D00⠦283000⠄002900⣇002800⡫002800⡿282800⠀002900⢾002800⢷002900⣨002900⡨002900⣫005C00⣀005C00⢀286000⣀005B00⣀285B00⣀285B00⢀282A00⠖282A00⠇2B5C00⡂295C00⠄2B5B00⠢]])
image.draw(4, 3, devka)

Разумеется, обработка строк занимает больше времени, нежели прямая загрузка с диска, однако для изображений среднего размера такой метод дает более чем приемлемый профит:
 
R4C68ob.png?2


Сообщение отредактировал ECS: 28 Декабрь 2017 - 14:19

  • Totoro и eu_tomat это нравится





Темы с аналогичным тегами конвертер, изображение, шрифт Брайля, графика, java

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

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

Яндекс.Метрика