gpt4 book ai didi

php - setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick

转载 作者:行者123 更新时间:2023-12-05 05:19:20 24 4
gpt4 key购买 nike

我在Imagick中找到了两种设置图片压缩质量的方法

一)设置图像压缩质量

B)设置压缩质量

所以我想知道哪个最好,为什么在下面的情况下

我读到setCompressionQuality 方法仅适用于新图像 (?)

我正在尝试压缩 jpeg/png 文件

$im = new Imagick();

$im->readImage($file); // path/to/file
$im->setImageCompressionQuality($quality); // 90,80,70 e.g.

$im->writeImage($file);

最佳答案

setImageCompressionQuality 方法设置当前图像的压缩质量。此方法是 MagickWandMagickSetImageCompressionQuality 函数的包装器。 Source code是:

WandExport MagickBooleanType MagickSetImageCompressionQuality(MagickWand *wand,
const size_t quality)
{
assert(wand != (MagickWand *) NULL);
assert(wand->signature == MagickWandSignature);
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);

//This line sets the quality for the instance 'images'
wand->images->quality=quality;
return(MagickTrue);
}

setCompressionQuality 方法设置整个对象的压缩质量。此方法是 MagickWandMagickSetCompressionQuality 函数的包装器。 Source code是:

WandExport MagickBooleanType MagickSetCompressionQuality(MagickWand *wand,
const size_t quality)
{
assert(wand != (MagickWand *) NULL);
assert(wand->signature == MagickWandSignature);
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);

//This line sets quality for the image_info struct instance.
wand->image_info->quality=quality;
return(MagickTrue);
}

MagickWand 结构包含 ImageImageInfo 结构的实例,source :

struct _MagickWand
{
...

Image
*images; /* The images in this wand - also the current image */

ImageInfo
*image_info; /* Global settings used for images in Wand */
...
};

两者都是Image and ImageInfo结构包含一个 size_t quality; 数据成员。因此,对于您的示例,setImageCompressionQuality 非常好。

关于php - setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46441364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com