ECS 1 639 Опубликовано: 26 апреля, 2017 (изменено) Хочу поделиться с вами конвертером изображений, позволяющим использовать ограниченное пространство мониторов наиболее эффективным образом, а также библиотеками для быстрой отрисовки результата. Поддержка шрифта Брайля позволяет получать изображения размером до 320х200 визуальных точек при физическом ограничении мониторов в 160х50 символов, а алгоритм дизеринга помогает избавиться от визуальных ограничений 256-цветной палитры. Ссылка для загрузки конвертера: https://github.com/IgorTimofeev/OCIFImageConverter/raw/master/out/artifacts/ImageConverter_jar/ImageConverter.jar Команда для установки ПО для отрисовки: pastebin run ng73uZqT Практический пример: Чтобы отобразить картинку на экране, для начала ее необходимо сконвертировать и скопировать любым удобным образом на диск комьютера (напрямую в папку мира, через файловый хостинг и т.п.). В моем случае картинка называется Triss.pic: Затем напишем следующий код или запустим установившуюся программу 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)Результат не заставит себя ждать: Также привожу в качестве демонстрации несколько отрисованных изображений: Изменено 18 мая, 2018 пользователем ECS 19 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProShow 2 Опубликовано: 28 апреля, 2017 Ну ты как обычно) Давно слежу за твоими прогами. Отлично делаешь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 639 Опубликовано: 29 апреля, 2017 Ну ты как обычно) Давно слежу за твоими прогами. Отлично делаешь! Спасибо, спасибо, приятно. К слову о проге: в конвертер добавлена поддержка более совершенного метода кодирования OCIF6, в результате чего пикчи на дисках весят в разы меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Laine_prikol 43 Опубликовано: 28 мая, 2017 Все-таки это не очень важно но, я уже на ютубе писал что: 160х50 точек это некорректно, разрешение монитора ОС: 160х50 Символов, а не точек. Символ в ОС вроде 8х4 точек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 502 Опубликовано: 29 мая, 2017 Все-таки это не очень важно но, я уже на ютубе писал что: 160х50 точек это некорректно, разрешение монитора ОС: 160х50 Символов, а не точек. Символ в ОС вроде 8х4 точек. 8 на 4 это опять таки символы - символы алфавита Брайля. А вообще не вижу смысла придираться к словам. Слово "точки" ничем не хуже слова "символы" для определения разрешения монитора. А учитывая, что речь не о тексте, а именно о способности монитора отрисовывать растровые изображения, слово "точки" куда лучше чем "символы" или "пиксели" передаёт смысл того, что хотел сказать автор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 639 Опубликовано: 29 мая, 2017 Все-таки это не очень важно но, я уже на ютубе писал что: 160х50 точек это некорректно, разрешение монитора ОС: 160х50 Символов, а не точек. Символ в ОС вроде 8х4 точек. Ах ты ж чертов педант. Ладно, ладно, исправил хд Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zemkekop 0 Опубликовано: 3 июля, 2017 привет! Игорь, а ссылку вводить с точками? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 502 Опубликовано: 3 июля, 2017 (изменено) привет! Игорь, а ссылку вводить с точками? Если ты про ссылку на скачивание, то точки - это просто форум её так сократил. В полном виде она выглядит так: https://github.com/IgorTimofeev/OpenComputers/raw/master/ImageConverter/out/artifacts/ImageConverter_jar/ImageConverter.jar И это программа не для OC, а для настоящего компьютера. Написана на Java. Изменено 3 июля, 2017 пользователем Totoro Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Koteyk0o 9 Опубликовано: 11 июля, 2017 Прога не работает, или я делаю что-то не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 280 Опубликовано: 11 июля, 2017 Полный путь указывай, от корня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Koteyk0o 9 Опубликовано: 11 июля, 2017 Полный путь указывай, от корня. спасибо большое Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 639 Опубликовано: 28 декабря, 2017 (изменено) Добавлена поддержка строковой конвертации. Эта фича довольно полезна в тех случаях, когда нет возможности/желания перегружать хард тонной мелких зависимых картинок ради одной программы: К примеру, грустную девку со скрина выше можно отрисовать следующим образом: 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) Разумеется, обработка строк занимает больше времени, нежели прямая загрузка с диска, однако для изображений среднего размера такой метод дает более чем приемлемый профит: Изменено 28 декабря, 2017 пользователем ECS 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
whiskas 95 Опубликовано: 4 августа, 2019 (изменено) А можна поподробние как отрисовать в 1 символе 8 точек разных цветов? Логично подумав я понял что можна если использувать только 2 цвета (background, foreground). То мой вопрос в том можна ли использувать больше 2х цветов в 1 символе и если да то как? Изменено 4 августа, 2019 пользователем whiskas Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 611 Опубликовано: 4 августа, 2019 10 часов назад, whiskas сказал: А можна поподробние как отрисовать в 1 символе 8 точек разных цветов? Логично подумав я понял что можна если использувать только 2 цвета (background, foreground). То мой вопрос в том можна ли использувать больше 2х цветов в 1 символе и если да то как? никак... 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах