Output Formats
libvips_ffi supports multiple output formats with various options.
JPEG
pipeline.toJpeg(
quality: 85, // 1-100, default 75
optimizeCoding: true,
interlace: false,
stripMetadata: true,
)
Options:
quality- Compression quality (1-100)optimizeCoding- Optimize Huffman codinginterlace- Progressive JPEGstripMetadata- Remove EXIF and other metadata
PNG
pipeline.toPng(
compression: 6, // 0-9, default 6
interlace: false,
palette: false, // Use palette for small file size
)
Options:
compression- Compression level (0=fast, 9=best)interlace- Adam7 interlacingpalette- Convert to 8-bit palette
WebP
pipeline.toWebp(
quality: 90, // 1-100
lossless: false,
nearLossless: false,
alphaQuality: 100,
)
Options:
quality- Compression qualitylossless- Lossless compressionnearLossless- Near-lossless compressionalphaQuality- Alpha channel quality
GIF
pipeline.toGif(
dither: 1.0, // Dithering amount
)
TIFF
pipeline.toTiff(
compression: VipsTiffCompression.lzw,
predictor: VipsTiffPredictor.horizontal,
)
Compression options:
VipsTiffCompression.noneVipsTiffCompression.jpegVipsTiffCompression.deflateVipsTiffCompression.lzw
HEIF/AVIF
pipeline.toHeif(
quality: 80,
lossless: false,
)
pipeline.toAvif(
quality: 80,
)
note
HEIF/AVIF support depends on libvips build configuration.
DeepZoom (DZI)
Generate a Deep Zoom pyramid for large images.
pipeline.toDeepZoom(name: 'output')
This creates:
output.dzi- XML descriptoroutput_files/- Tile directory
Auto-detect Format
// From file extension
pipeline.toFile('output.png') // Saves as PNG
// From format string
pipeline.toBuffer(format: 'webp')
Raw Bytes
// Get raw pixel data
final bytes = pipeline.toBytes()