【问题标题】:Vips writeToBuffer not apply the image qualityVips writeToBuffer 不应用图像质量
【发布时间】:2020-12-25 10:08:11
【问题描述】:

我正在尝试使用具有质量的 libvips writeToBuffer 方法,但它不会将质量应用于图像是否有任何其他方法可以设置质量。如果文件存在,我有以下情况,那么它调用writeToFile,否则调用writeToBuffer。有什么解决方案可以实现以下情况吗?

$image = Vips\Image::newFromFile($sourceimgfile);
$result = $image->writeToBuffer('.jpg', ['Q' => 50]);
file_put_contents($destinationimgfile, $result);

实际输出:

如果我将图像质量设置为 50,那么它应该给我低分辨率的图像,但它仍然会生成与输入图像相同的图像。它没有对图像应用质量。

【问题讨论】:

  • 它应该可以工作。您需要提供更多信息:您看到什么文件大小、您期望什么、您使用的 libvips 版本、您使用的平台、制作一个完整的、可运行的程序来显示问题等等。
  • 我用正确的输入更新了我的问题
  • 它正在工作实际上它我试图应用低分辨率,我比较了两个图像它工作正常。谢谢

标签: php vips


【解决方案1】:

它应该工作。您可以像这样在命令行中进行测试:

$ 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

所以在 Q 20,它只有 55kb,但 Q 90 是 260kb。

【讨论】:

    猜你喜欢
    • 2020-02-14
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2011-07-31
    • 2011-03-08
    • 1970-01-01
    相关资源
    最近更新 更多