self:compress

Client

Compresses the image using GPU block-compression, significantly reducing VRAM usage


Syntax

local status = self:compress(
    mode
)

Compression is irreversible. Unlike self:convert, once an image is compressed with GPU block-compression it cannot be converted or compressed again.

  • Use convert — for quick, reversible VRAM savings, or a specific channel layout.
  • Use compress — for maximum VRAM savings on a finished asset that won't need further format changes.
  • Combining both — convert first if you need a specific format, then compress; compression locks the image afterward.
  • Filter overrides — any self:set_filter override stays applied after compression; the image is updated in place, not replaced.

Parameters

TypeNameDescription
core.image.compression_modemodeTarget compression mode

Returns

TypeNameDescription
boolstatustrue on successful execution, false otherwise

Examples

Compress a desktop image with S3TC
local entity = core.image.create("assets/diffuse.png")

entity:compress(core.image.compression_mode.S3TC)
Compress an alpha image with high quality BPTC
local entity = core.image.create("assets/sprite.png")

entity:compress(core.image.compression_mode.BPTC)
Compress an HDR sky image with BPTC
local entity = core.image.create("assets/sky/panorama.hdr")

entity:compress(core.image.compression_mode.BPTC)

On this page