输入输出
图像加载和保存操作。
函数映射
加载
| libvips C | Dart 绑定 | Pipeline 方法 | PipelineSpec |
|---|---|---|---|
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() | - | - |
保存
| libvips C | Dart 绑定 | Pipeline 方法 | PipelineSpec |
|---|---|---|---|
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_dzsave() | ioBindings.dzsave() | pipeline.toDeepZoom() | - |
image_new_from_file
从文件加载图像。
final pipeline = VipsPipeline.fromFile('/path/to/image.jpg');
image_new_from_buffer
从内存缓冲区加载图像。
final bytes = await File('image.jpg').readAsBytes();
final pipeline = VipsPipeline.fromBuffer(bytes);
image_write_to_buffer
将图像保存到内存缓冲区。
final jpegBytes = pipeline.toJpeg(quality: 85);
final pngBytes = pipeline.toPng(compression: 6);
final webpBytes = pipeline.toWebp(quality: 90);
格式特定选项
JPEG
pipeline.toJpeg(quality: 85) // quality: 1-100,默认 75
PNG
pipeline.toPng(compression: 6) // compression: 0-9,默认 6
WebP
pipeline.toWebp(quality: 90, lossless: false) // 默认 quality: 75