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

GIF - идеальный для OpenComputers?

Рекомендуемые сообщения

Прикольно очень, а можно образец для рисования на экране, я попробовал вывести и как-то не особо получилось (наверное мало думал).

Для тех кто будет тестировать, прописывайте полный путь до файла типа:

testProgram.lua /home/plaintext.gif

И еще такой вопрос, скорее всего в программе не указано подключение filesystem. Хотя я в эмуляторе тестировал и может в реальных компах там не требуется ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Охренительно.

А идею с монитором из голографических проекторов совсем недавно обсуждали. Прикольно увидеть это вживую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Asior в тесте есть подключение:

В 19.05.2020 в 22:34, Xytabich сказал:

local fs = require("filesystem")
if not fs.exists(file) then print("File does not exist") end

А сама либа уже использует файловый поток.

Лёгких библиотек по рисованию цветом не знаю, и не делал примеров с экраном, потому вот псевдокод:

local canvas, x, y = ... -- холст и позиция изображения
local file = filesystem.open("/image.gif", "r")
local gifFile = gif.read(file)
canvas.fill(x, y, gifFile.width, gifFile.height, gifFile.colors[gifFile.bgIndex])
for _,block in pairs(gifFile.blocks) do
  if block.type == "image" then
    block = block.block
    for py=1, block.height do
      for px=1, block.width do
        canvas.setPixel(x+block.x+px, y+block.y+py, gifFile.colors[block.pixels:byte((py-1)*block.width + px)])
      end
    end
  end
end

Пиксель - это индекс цвета в палитре. Записаны они в виде линий, сверху-вниз, друг за другом, надо думаю дописать об этом.

Изменено пользователем Xytabich

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Totoro если оптимизировать запись пикселей в голограмму, можно целые фильмы показывать)

Изменено пользователем Xytabich

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, Totoro сказал:

идею с монитором из голографических проекторов

Сколько минимум проекторов нужно, чтобы разрешения хватало для вывода одного любого символа, что можно вывести на обычный монитор?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
27 минут назад, hohserg сказал:

Сколько минимум проекторов нужно, чтобы разрешения хватало для вывода одного любого символа, что можно вывести на обычный монитор?

Вернее будет говорить не о количестве проекторов на один символ, а о количестве символов, отображаемых одним проектором.

 

Размер обычного символа на мониторе OC составляет 8x16, а проектор обеспечивает разрешение до 48x48. Получается, что один проектор может вывести поле символов размером 6x3. А для символов двойной ширины (встречаются и такие) поле будет иметь размер 3x3.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, eu_tomat сказал:

Вернее будет говорить не о количестве проекторов на один символ, а о количестве символов, отображаемых одним проектором.

Если один проектор позволяет отобразить 18 символов, то нужно 1/18 проекторов для одного символа. Конечно, поделить проектор нельзя, но такое представление удобно, чтобы подсчитать, столько проекторов дадут разрешение эквивалентное монитору. На мониторе т3 8000 символов(160*50), без учета символов двойной ширины нужно 445 проекторов

Изменено пользователем hohserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, hohserg сказал:

Если один проектор позволяет отобразить 18 символов, то нужно 1/18 проекторов для одного символа. Конечно, поделить проектор нельзя, но такое представление удобно, чтобы подсчитать, столько проекторов дадут разрешение эквивалентное монитору. На мониторе т3 8000 символов(160*50), без учета символов двойной ширины нужно 445 проекторов

Да, удобно. Считать можно и так, если к результатам расчётов добавлять слово "приблизительно".

Для отображения поля символов размером 160x50 требуется приблизительно 445 проекторов, а точнее — 459.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ок, такой метод подсчета действительно ошибочный, потому что монитор прямоугольник, а не линия. С учетом пикселей символов разрешение монитора т3 - 1280x800, поэтому нужно 27 проекторов по горизонтали и 17 по вертикали, что составляет 459. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Версия 1.01:
- Оптимизация кода

- Убрано использование глобальных ссылок

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 20.05.2020 в 00:34, Xytabich сказал:

Lua 5.3 использует встроенные битовые операции

Не везде. Вижу часто 2^count.

 

Ещё есть баг, что для больших картинок нижняя часть съезжает - некорректно декодируется.

Послал PR с фиксом. Протестить можно на прикреплённой картинке.

test3.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ProgramCrafter в основном были заменены функции на операции, а работающие трюки не были затронуты. За фикс спасибо, поправил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...