使用 PHP vips 库调整图像大小
Resize the image using PHP vips library
我正在使用 PHP imagick 和 PHP vips 库进行图像操作。我正在处理图像调整大小操作。对于 imagick,我使用 resizeImage() 函数,对于 vips,我使用 resize() 函数。但是对于相同的高度和宽度,两个图像的输出是不同的。我想要 vips 的相同输出。在这里,我添加了用于 vips 的代码。我也想要 vips 的相同结果,我进入了 imagick
<!-- Imagick Code -->
$img = new Imagick($ipFile);
$img->resizeImage(1000, 1000, Imagick::FILTER_LANCZOS, 1, true);
$img->writeimage($opFile);
<!-- VIPS Code -->
$im = Vips\Image::newFromFile($ipFile);
$im = $im->resize($ratio, ['kernel' => 'lanczos2']);
$im->writeToFile($opFile);
Vips 输出文件:
Imagick 输出文件:
不要将 resize
与 php-vips 一起使用,除非你真的必须这样做。 thumbnail
.
您将获得更好的质量、更快的速度和更少的内存使用
thumbnail
操作将加载和调整大小合二为一,因此它可以利用 shrink-on-load 等技巧。它知道透明度,所以它会正确调整 PNG 的大小。它还了解 PDF 和 SVG 等矢量格式,并将以最佳方式调整它们的大小。
尝试:
<!-- VIPS Code -->
$im = Vips\Image::thumbnail($ipFile, 1000);
$im->writeToFile($opFile);
基准:
$ /usr/bin/time -f %M:%e convert ~/pics/nina.jpg -resize 1000x1000 x.jpg
238836:0.77
$ /usr/bin/time -f %M:%e vips resize ~/pics/nina.jpg x.jpg .1653439153
60996:0.39
$ /usr/bin/time -f %M:%e vips thumbnail ~/pics/nina.jpg x.jpg 1000
49148:0.16
nina.jpg
是一张 6k x 4k RGB JPG 图片。
- imagick 在 770 毫秒和 240MB 内存中调整大小
- vips
resize
占用 390ms 和 61MB 内存
- vips
thumbnail
占用 160ms 和 50MB 内存
这种情况下质量将相同。
我正在使用 PHP imagick 和 PHP vips 库进行图像操作。我正在处理图像调整大小操作。对于 imagick,我使用 resizeImage() 函数,对于 vips,我使用 resize() 函数。但是对于相同的高度和宽度,两个图像的输出是不同的。我想要 vips 的相同输出。在这里,我添加了用于 vips 的代码。我也想要 vips 的相同结果,我进入了 imagick
<!-- Imagick Code -->
$img = new Imagick($ipFile);
$img->resizeImage(1000, 1000, Imagick::FILTER_LANCZOS, 1, true);
$img->writeimage($opFile);
<!-- VIPS Code -->
$im = Vips\Image::newFromFile($ipFile);
$im = $im->resize($ratio, ['kernel' => 'lanczos2']);
$im->writeToFile($opFile);
Vips 输出文件:
不要将 resize
与 php-vips 一起使用,除非你真的必须这样做。 thumbnail
.
thumbnail
操作将加载和调整大小合二为一,因此它可以利用 shrink-on-load 等技巧。它知道透明度,所以它会正确调整 PNG 的大小。它还了解 PDF 和 SVG 等矢量格式,并将以最佳方式调整它们的大小。
尝试:
<!-- VIPS Code -->
$im = Vips\Image::thumbnail($ipFile, 1000);
$im->writeToFile($opFile);
基准:
$ /usr/bin/time -f %M:%e convert ~/pics/nina.jpg -resize 1000x1000 x.jpg
238836:0.77
$ /usr/bin/time -f %M:%e vips resize ~/pics/nina.jpg x.jpg .1653439153
60996:0.39
$ /usr/bin/time -f %M:%e vips thumbnail ~/pics/nina.jpg x.jpg 1000
49148:0.16
nina.jpg
是一张 6k x 4k RGB JPG 图片。
- imagick 在 770 毫秒和 240MB 内存中调整大小
- vips
resize
占用 390ms 和 61MB 内存 - vips
thumbnail
占用 160ms 和 50MB 内存
这种情况下质量将相同。