27 lines
849 B
Lua
27 lines
849 B
Lua
function Bitmap:loadPPM(filename)
|
|
local fp = io.open( filename, "rb" )
|
|
if fp == nil then return false end
|
|
local head, width, height, depth, tail = fp:read("*line", "*number", "*number", "*number", "*line")
|
|
self.width, self.height = width, height
|
|
self:alloc()
|
|
for y = 1, self.height do
|
|
for x = 1, self.width do
|
|
self.pixels[y][x] = { string.byte(fp:read(1)), string.byte(fp:read(1)), string.byte(fp:read(1)) }
|
|
end
|
|
end
|
|
fp:close()
|
|
end
|
|
|
|
function Bitmap:savePPM(filename)
|
|
local fp = io.open( filename, "wb" )
|
|
if fp == nil then return false end
|
|
fp:write(string.format("P6\n%d %d\n%d\n", self.width, self.height, 255))
|
|
for y = 1, self.height do
|
|
for x = 1, self.width do
|
|
local pix = self.pixels[y][x]
|
|
fp:write(string.char(pix[1]), string.char(pix[2]), string.char(pix[3]))
|
|
end
|
|
end
|
|
fp:close()
|
|
end
|