php imagick JPEG2000 压缩文件大小增加

php imagick JPEG2000 compression increases in filesize

我正在使用 imagick php 扩展从 .jpg 创建 .webp.jp2 文件并压缩图像在这个过程中。我在 .webp 图片上取得了不错的效果,但在 .jp2 上遇到了一些问题。

这是我创建的代码 webp:

<?php
$img = new Imagick("test.jpg");
$img->setImageFormat("webp");
$img->setImageCompression(Imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality(50);
$img->writeImage("test.webp");
?>

这很好用,与 jpg 相比,我的 webp 文件大小减少了近 90%。但是对 JPEG2000 (jp2) 使用相同的技术,我的文件大小增加了大约 30%。

这是我用于 jp2:

的代码
<?php
$img = new Imagick("test.jpg");
$img->setImageFormat("jp2");
$img->setImageCompression(Imagick::COMPRESSION_JPEG2000);
$img->setImageCompressionQuality(50);
$img->writeImage("test.jp2");
?>

我尝试了很多不同的图像作为源文件(压缩的和未压缩的),结果都是一样的。对我做错了什么有任何见解吗?谢谢

我对 JPEG2000 不够熟悉,无法提供任何有用的解释,如果有人能更好地解释,我会更愿意,所以请不要急于“接受”这个答案。

但目前,请注意 JPEG2000 中质量的工作方式有所不同,请参阅以 jp2:XXX here.

开头的定义

在 PHP Imagick 中,您可以通过以下方式实现等效的 defines

$imagick->setOption('jp2:quality', 40);