我正在尝试使用libvips的writeToBuffer方法与质量,但它不适用于图像的质量有没有其他方法来设置质量。我有下面的例子,如果文件存在,则调用writeToFile,否则调用writeToBuffer。对于下面的情况,有什么解决方案吗?
$image = Vips\Image::newFromFile($sourceimgfile);
$result = $image->writeToBuffer('.jpg', ['Q' => 50]);
file_put_contents($destinationimgfile, $result);实际输出:

如果我设置图像质量50,那么它应该给我低分辨率的图像,但它仍然生成与输入图像相同的图像。它没有在图像上应用质量。
发布于 2020-12-25 21:38:34
应该能行得通。您可以在命令行中进行测试,如下所示:
$ vips jpegsave_buffer astronauts.png --Q 20
VIPS_TYPE_BLOB, data = 0x7f5388000b60, length = 55617
$ vips jpegsave_buffer astronauts.png --Q 90
VIPS_TYPE_BLOB, data = 0x7fefbc6f9010, length = 263341所以在q20,它只有55kb,但是q90是260kb。
https://stackoverflow.com/questions/65447105
复制相似问题