Skip to main content

I/O

Image loading and saving operations.

Function Mapping

Loading

libvips CDart BindingPipeline MethodPipelineSpec
vips_image_new_from_file()apiBindings.imageNewFromFile()VipsPipeline.fromFile()spec.input()
vips_image_new_from_buffer()apiBindings.imageNewFromBuffer()VipsPipeline.fromBuffer()spec.inputBuffer()
vips_jpegload()ioBindings.jpegload()--
vips_pngload()ioBindings.pngload()--
vips_webpload()ioBindings.webpload()--
vips_gifload()ioBindings.gifload()--
vips_tiffload()ioBindings.tiffload()--
vips_heifload()ioBindings.heifload()--

Saving

libvips CDart BindingPipeline MethodPipelineSpec
vips_image_write_to_file()apiBindings.imageWriteToFile()pipeline.toFile()-
vips_image_write_to_buffer()apiBindings.imageWriteToBuffer()pipeline.toBuffer()spec.execute()
vips_jpegsave_buffer()ioBindings.jpegsaveBuffer()pipeline.toJpeg()spec.outputJpeg()
vips_pngsave_buffer()ioBindings.pngsaveBuffer()pipeline.toPng()spec.outputPng()
vips_webpsave_buffer()ioBindings.webpsaveBuffer()pipeline.toWebp()spec.outputWebp()
vips_gifsave_buffer()ioBindings.gifsaveBuffer()pipeline.toGif()-
vips_tiffsave_buffer()ioBindings.tiffsaveBuffer()pipeline.toTiff()-
vips_heifsave_buffer()ioBindings.heifsaveBuffer()pipeline.toHeif()-
vips_dzsave()ioBindings.dzsave()pipeline.toDeepZoom()-

image_new_from_file

Load an image from file.

C API

VipsImage *vips_image_new_from_file(const char *name, ...);

Dart Binding

Pointer<VipsImage> imageNewFromFile(Pointer<Char> name);

Pipeline API

final pipeline = VipsPipeline.fromFile('/path/to/image.jpg');

image_new_from_buffer

Load an image from memory buffer.

C API

VipsImage *vips_image_new_from_buffer(const void *buf, size_t len, const char *option_string, ...);

Dart Binding

Pointer<VipsImage> imageNewFromBuffer(
Pointer<Void> buf,
int len,
Pointer<Char> optionString,
);

Pipeline API

final bytes = await File('image.jpg').readAsBytes();
final pipeline = VipsPipeline.fromBuffer(bytes);

image_write_to_buffer

Save image to memory buffer.

C API

int vips_image_write_to_buffer(VipsImage *in, const char *suffix, void **buf, size_t *size, ...);

Dart Binding

int imageWriteToBuffer(
Pointer<VipsImage> image,
Pointer<Char> suffix,
Pointer<Pointer<Void>> buf,
Pointer<Size> size,
);

Pipeline API

final jpegBytes = pipeline.toJpeg(quality: 85);
final pngBytes = pipeline.toPng(compression: 6);
final webpBytes = pipeline.toWebp(quality: 90);

Format-Specific Options

JPEG

pipeline.toJpeg(quality: 85)  // quality: 1-100, default 75

PNG

pipeline.toPng(compression: 6)  // compression: 0-9, default 6

WebP

pipeline.toWebp(quality: 90, lossless: false)  // default quality: 75