35 lines
764 B
Lua
35 lines
764 B
Lua
function Read_PPM( filename )
|
|
local fp = io.open( filename, "rb" )
|
|
if fp == nil then return nil end
|
|
|
|
local data = fp:read( "*line" )
|
|
if data ~= "P6" then return nil end
|
|
|
|
repeat
|
|
data = fp:read( "*line" )
|
|
until string.find( data, "#" ) == nil
|
|
|
|
local image = {}
|
|
local size_x, size_y
|
|
|
|
size_x = string.match( data, "%d+" )
|
|
size_y = string.match( data, "%s%d+" )
|
|
|
|
data = fp:read( "*line" )
|
|
if tonumber(data) ~= 255 then return nil end
|
|
|
|
for i = 1, size_x do
|
|
image[i] = {}
|
|
end
|
|
|
|
for j = 1, size_y do
|
|
for i = 1, size_x do
|
|
image[i][j] = { string.byte( fp:read(1) ), string.byte( fp:read(1) ), string.byte( fp:read(1) ) }
|
|
end
|
|
end
|
|
|
|
fp:close()
|
|
|
|
return image
|
|
end
|