Awesome
Lua-QOI
<img src="images/lua_qoi.png" width="128" title="logo by https://twitter.com/dr4kokosik" />
Lua bindings to the QOI (“Quite OK Image”) library (https://github.com/phoboslab/qoi)
Example
local qoi = require "lua-qoi"
local image = qoi.read("hello.qoi")
local x, y = image.width / 2, image.height / 2
image:setPixel(x, y, 255, 255, 255)
image:write("world.qoi")
See more examples in the test directory.
Functions
qoi.read(path, [channels: 0]) -> image
Reads a QOI image from the given path. The channels argument is optional and defaults to 0, meaning the channels from the file are used.
qoi.new(width, height, [channels: 4]) -> image
Creates a new QOI image with the given dimensions. The channels
parameter is optional and defaults to 4.
qoi.decode(data) -> image
Decodes a QOI image from a binary string.
image:write(path)
or qoi.write(image, path)
Writes a QOI image to the given path.
image:encode() -> string
or qoi.encode(image) -> string
Encodes a QOI image to a binary string.
image:getPixel(x, y) -> r, g, b, a
or qoi.getPixel(image, x, y) -> r, g, b, a
Returns the pixel at the given coordinates. The returned values are in the range [0, 255].
image:setPixel(x, y, r, g, b, [a: 255])
or qoi.setPixel(image, x, y, r, g, b, [a: 255])
Sets the pixel at the given coordinates. The values must be in the range [0, 255]. The a
parameter is optional and defaults to 255.
Image properties
image.width
Image width.
image.height
Image height.
image.channels
Image channels.
Building
To build this library, run:
Win32:
$ build.bat
For building for a specific Lua version, change
find_package(Lua 5.1 EXACT REQUIRED)
to what you need in CMakeLists.txt. For example,find_package(Lua 5.3 EXACT REQUIRED)
for Lua 5.3.
Testing
To test this library, run:
$ cd test
$ lua all.lua
This library has been tested with Lua 5.1, 5.3 and 5.4.
License
This library is released under the MIT license.