lil-aux.lua
return function(lil)
local function findHandler(data, path)
if data then
for _,handler in pairs(lil.formatHandlers) do
if handler.pattern and data:find(handler.pattern) then
return handler
end
end
end
if path then
for _,handler in pairs(lil.formatHandlers) do
for _,ext in pairs(handler.extensions) do
if path:find(ext) then
return handler
end
end
end
end
end
function lil.import(data, opts)
local handler = assert(findHandler(data))
local img = assert(handler.import(data, opts))
return img
end
function lil.open(path, opts)
local file = assert(io.open(assert(path, "No path"), "r"))
local data = assert(file:read("*a"))
file:close()
local handler = assert(findHandler(data, path), ("No handler found for %s"):format(path))
local img = assert(handler.import(data, opts))
img.path = path
return img
end
function lil.imgMT:save(path, opts)
local handler = assert(findHandler(nil, assert(path, "No path")), ("No handler found for %s"):format(path))
local data = assert(handler.export(self, opts))
local file = assert(io.open(path, "w"))
file:write(data)
file:close()
return self
end
function lil.imgMT:export(typ, opts)
local handler = assert(findHandler(nil, typ), ("No handler found for %s"):format(typ))
local data = assert(handler.export(self, opts))
return data
end
function lil.imgMT:new(colour)
local img = lil.new(self.w, self.h)
if colour then img:fill(colour) end
return img
end
function lil.imgMT:overwriteInternals(img2)
self.ud, self.w, self.h = img2.ud, img2.w, img2.h
end
function lil.imgMT:mirror()
return self:flip("h")
end
function lil.imgMT:bg(col)
local img2 = self:new(assert(col, "Need a colour")):comp(self)
self:overwriteInternals(img2)
return self
end
function lil.imgMT:fg(col)
return self:rect(col, 0, 0, self.w, self.h)
end
end