Zer0Galaxy 2 187 Опубликовано: 24 марта, 2017 На нашем форуме уже поднималась тема об использовании шрифта Брайля для создания графики повышенного разрешения. Я тоже решил не оставаться в стороне. Действительно, такой способ дает возможность получить на мониторе 3-его уровня разрешение 320 х 200 точек, что в сочетании с 16-ю (а если точнее, 18-ю) градациями серого, может обеспечить весьма приемлемое качество растровых изображений. Проблема, с которой я столкнулся, состояла в том, что ОС-компьютер довольно длительное время обрабатывает изображения такого размера. Поэтому я принял решение переконвертировать изображение в формат удобный для чтения ОС-компьютером. Конвертирование выполняется программой, написанной на LOVE2D. В результате получается vga-файл, который может последовательно считываться и выводиться на экран ОС-компьютера при помощи простенькой программки: local gpu = require("component").gpu local unicode=require("unicode") local filename = ... if not filename then print("Use: vga <vga-filename>") return end local file=require("filesystem").open("home/"..filename) -- открываем файл local oldW,oldH = gpu.getResolution() -- сохраняем текущее разрешение local H = string.byte(file:read(1)) local W = string.byte(file:read(1)) gpu.setResolution(W,H) -- устанавливаем новое разрешение for y=1,H do for x=1,W do gpu.setForeground(string.byte(file:read(1))*0x010101) -- устанавливаем цвет чернил ... gpu.setBackground(string.byte(file:read(1))*0x010101) -- ... цвет фона ... gpu.set(x,y,unicode.char(0x2800+string.byte(file:read(1)))) -- ... и выводим очередной символ шрифта Брайля end os.sleep(0) -- на всякий случай, что бы не подвиснуть end file:close() require("event").pull("touch") -- ждем клика gpu.setForeground(0xffffff) -- возвращаем исходные настройки gpu.setBackground(0x000000) gpu.setResolution(oldW,oldH) Как нетрудно видеть из приведенного выше кода, структура vga-файла такова: - первый и второй байты: высота и ширина картинки (в знакоместах); - группы из трех байт, каждая из которых определяет цвет и заполнение очередного знакоместа. Интересно, что хотя я не стремился минимизировать размер vga-файла, он получился в несколько раз меньше исходного png-файла. И вот, что у меня вышло: 10 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Laine_prikol 48 Опубликовано: 24 марта, 2017 Вот бы цветной режим завезли Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 723 Опубликовано: 24 марта, 2017 И вот, что у меня вышло: Ты бы лучше сделал бы пару скринов в игре, как со стороны будет выглядеть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
HixOff 102 Опубликовано: 24 марта, 2017 Конвертирование выполняется программой, написанной на LOVE2D а где её взять ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 24 марта, 2017 Вот бы цветной режим завезли https://hel.fomalhaut.me/#packages/ctif 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 25 марта, 2017 Ха, только что хотел сделать такой же велосипед. Только это не шрифт Брайля, а псевдографические символы предназначенные для вывода монохромных изображений, a путем нехитрой манипуляции можно сделать их цветными (дикое смешивание цветов, хуже чем jpeg, но для рекламных панелей сойдет). 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 25 марта, 2017 https://hel.fomalhaut.me/#packages/ctifТак Тоторо это уже делал? А как же я пропустил это на форуме? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 26 марта, 2017 Не @Totoro. Это очень давнее изобретение, о котором поведали на английском форуме: https://oc.cil.li/index.php?/topic/864-chenthread-image-format-high-quality-images-on-opencomputers/ И сделал это asiekierka. Заслуга Тоторы тут лишь в том, что он поместил этот пакет на репу, чтобы мне не пришлось долго искать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах