Как преобразовать источники файлов изображений в CSV? - PullRequest
0 голосов
/ 12 января 2012

Я искал, но я не могу найти файл изображения в CSV конвертер, который работает. У вас есть программа / код / ​​предложение на каком-то языке, который выведет мне что-то похожее на 1,1255,255,255,0 1,2, 255,0255, 0 это легко понять. Я знаю Lua, но я хорошо использую другие языки, которые я не понимаю, чтобы получить вывод.

Спасибо.

Я бы хотел сделать это, потому что у меня есть посредственный скрипт генерации фрактальной местности, который может отображаться только через игру (roblox) с их графическим интерфейсом и занимает 400 КБ. Я бы предпочел загрузить быстрый 500x500 png файл, после того, как написал его с помощью ландшафта.

1 Ответ

0 голосов
/ 12 января 2012

Вы можете использовать Lua-GD , привязку для библиотеки C для рисования.

Вы должны сначала установить gd и все его зависимости, затем установить Lua-GD, как сказано в руководстве .

Вот код Lua, чтобы сделать то, что запрашивается:

require 'gd'

local f = io.open('file.csv', 'w')

local img = gd.createFromPng('image.png')
for y = 1, img:sizeY() do
    local line = ''
    for x = 1, img:sizeX() do
        -- I'm not sure about the return of this function, 
        -- the documentation is unclear. But it should not 
        -- be very different.
        local r, g, b = img:getPixel(x, y)
        line = line .. r .. ', ' .. g .. ', ' .. b .. ', '
    end
    line = line:gsub(',$', '\n') -- remove last comma
    f:write(line)
end
f:close()

Обратите внимание, что для простоты обработка ошибок не производится.

...