mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2024-11-28 13:53:45 +01:00
Encode image only when saving it to a file
This commit is contained in:
parent
5640e19c94
commit
9bd1702d60
@ -39,7 +39,7 @@ for x = 1,6,1 do -- left to right
|
|||||||
pixels[z][x] = color
|
pixels[z][x] = color
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
tga_encoder.image(pixels, {colors="BW", pixel_depth=8}):save("gradients_8bpp.tga")
|
tga_encoder.image(pixels):save("gradients_8bpp.tga", {colors="BW", pixel_depth=8})
|
||||||
|
|
||||||
local pixels = {}
|
local pixels = {}
|
||||||
for x = 1,16,1 do -- left to right
|
for x = 1,16,1 do -- left to right
|
||||||
@ -58,8 +58,9 @@ for x = 1,16,1 do -- left to right
|
|||||||
pixels[z][x] = color
|
pixels[z][x] = color
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
tga_encoder.image(pixels, {colors="RGB", pixel_depth=16}):save("gradients_16bpp.tga")
|
local gradients = tga_encoder.image(pixels)
|
||||||
tga_encoder.image(pixels, {colors="RGB", pixel_depth=24}):save("gradients_24bpp.tga")
|
gradients:save("gradients_16bpp.tga", {colors="RGB", pixel_depth=16})
|
||||||
|
gradients:save("gradients_24bpp.tga", {colors="RGB", pixel_depth=24})
|
||||||
|
|
||||||
local pixels = {}
|
local pixels = {}
|
||||||
for x = 1,512,1 do -- left to right
|
for x = 1,512,1 do -- left to right
|
||||||
@ -81,4 +82,4 @@ for x = 1,512,1 do -- left to right
|
|||||||
pixels[z][x] = color
|
pixels[z][x] = color
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
tga_encoder.image(pixels, {colors="RGB", pixel_depth=24}):save("fractal_24bpp.tga")
|
tga_encoder.image(pixels):save("fractal_24bpp.tga", {colors="RGB", pixel_depth=24})
|
||||||
|
18
init.lua
18
init.lua
@ -8,17 +8,10 @@ local image = setmetatable({}, {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
function image:constructor(pixels, properties)
|
function image:constructor(pixels)
|
||||||
local properties = properties or {}
|
|
||||||
properties.colors = properties.colors or "RGB"
|
|
||||||
properties.pixel_depth = properties.pixel_depth or 16
|
|
||||||
|
|
||||||
self.data = ""
|
|
||||||
self.pixels = pixels
|
self.pixels = pixels
|
||||||
self.width = #pixels[1]
|
self.width = #pixels[1]
|
||||||
self.height = #pixels
|
self.height = #pixels
|
||||||
|
|
||||||
self:encode(properties)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function image:encode_colormap_spec()
|
function image:encode_colormap_spec()
|
||||||
@ -263,6 +256,7 @@ function image:encode_footer()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function image:encode(properties)
|
function image:encode(properties)
|
||||||
|
self.data = ""
|
||||||
self:encode_header(properties) -- header
|
self:encode_header(properties) -- header
|
||||||
-- no color map and image id data
|
-- no color map and image id data
|
||||||
self:encode_data(properties) -- encode data
|
self:encode_data(properties) -- encode data
|
||||||
@ -270,7 +264,13 @@ function image:encode(properties)
|
|||||||
self:encode_footer() -- footer
|
self:encode_footer() -- footer
|
||||||
end
|
end
|
||||||
|
|
||||||
function image:save(filename)
|
function image:save(filename, properties)
|
||||||
|
local properties = properties or {}
|
||||||
|
properties.colors = properties.colors or "RGB"
|
||||||
|
properties.pixel_depth = properties.pixel_depth or 16
|
||||||
|
|
||||||
|
self:encode(properties)
|
||||||
|
|
||||||
local f = assert(io.open(filename, "wb"))
|
local f = assert(io.open(filename, "wb"))
|
||||||
f:write(self.data)
|
f:write(self.data)
|
||||||
f:close()
|
f:close()
|
||||||
|
Loading…
Reference in New Issue
Block a user