Image API documentation

Functions for creating image objects.

Version: alpha

FUNCTIONS
image.get_astc_header() get the header of an .astc buffer
image.load() load image from buffer
image.load_buffer() load image from a string into a buffer object
CONSTANTS
image.TYPE_LUMINANCE luminance image type
image.TYPE_LUMINANCE_ALPHA luminance image type
image.TYPE_RGB RGB image type
image.TYPE_RGBA RGBA image type

Functions

image.get_astc_header()

image.get_astc_header(buffer)

get the header of an .astc buffer

PARAMETERS

buffer string
.astc file data buffer

RETURNS

table table
nil
header or nil if buffer is not a valid .astc. The header has these fields:
  • number width: image width
  • number height: image height
  • number depth: image depth
  • number block_size_x: block size x
  • number block_size_y: block size y
  • number block_size_z: block size z

EXAMPLES

How to get the block size and dimensions from a .astc file
local s = sys.load_resource("/assets/cat.astc")
local header = image.get_astc_header(s)
pprint(s)

image.load()

image.load(buffer,options)

Load image (PNG or JPEG) from buffer.

PARAMETERS

buffer string
image data buffer
[options] table
An optional table containing parameters for loading the image. Supported entries:
premultiply_alpha
boolean True if alpha should be premultiplied into the color components. Defaults to false.
flip_vertically
boolean True if the image contents should be flipped vertically. Defaults to false.

RETURNS

image table
nil
object or nil if loading fails. The object is a table with the following fields:
  • number width: image width
  • number height: image height
  • constant type: image type
    • image.TYPE_RGB
    • image.TYPE_RGBA
    • image.TYPE_LUMINANCE
    • image.TYPE_LUMINANCE_ALPHA
  • string buffer: the raw image data

EXAMPLES

How to load an image from an URL and create a GUI texture from it:
local imgurl = "http://www.site.com/image.png"
http.request(imgurl, "GET", function(self, id, response)
        local img = image.load(response.response)
        local tx = gui.new_texture("image_node", img.width, img.height, img.type, img.buffer)
    end)

image.load_buffer()

image.load_buffer(buffer,options)

Load image (PNG or JPEG) from a string buffer.

PARAMETERS

buffer string
image data buffer
[options] table
An optional table containing parameters for loading the image. Supported entries:
premultiply_alpha
boolean True if alpha should be premultiplied into the color components. Defaults to false.
flip_vertically
boolean True if the image contents should be flipped vertically. Defaults to false.

RETURNS

image table
nil
object or nil if loading fails. The object is a table with the following fields:
  • number width: image width
  • number height: image height
  • constant type: image type
    • image.TYPE_RGB
    • image.TYPE_RGBA
    • image.TYPE_LUMINANCE
    • image.TYPE_LUMINANCE_ALPHA
  • buffer buffer: the script buffer that holds the decompressed image data. See buffer.create how to use the buffer.

EXAMPLES

Load an image from an URL as a buffer and create a texture resource from it:
local imgurl = "http://www.site.com/image.png"
http.request(imgurl, "GET", function(self, id, response)
        local img = image.load_buffer(response.response, { flip_vertically = true })
        local tparams = {
            width  = img.width,
            height = img.height,
            type   = graphics.TEXTURE_TYPE_2D,
            format = graphics.TEXTURE_FORMAT_RGBA }

        local my_texture_id = resource.create_texture("/my_custom_texture.texturec", tparams, img.buffer)
        -- Apply the texture to a model
        go.set("/go1#model", "texture0", my_texture_id)
    end)

Constants

image.TYPE_LUMINANCE

luminance image type


image.TYPE_LUMINANCE_ALPHA

luminance image type


image.TYPE_RGB

RGB image type


image.TYPE_RGBA

RGBA image type