setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick
What is difference between setImageCompressionQuality vs setCompressionQuality - Imagick
我在Imagick中找到了两种设置图片压缩质量的方法
A) 设置图像压缩质量
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
设置当前图像的压缩质量。此方法是 MagickWand
的 MagickSetImageCompressionQuality
函数的包装器。 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
设置整个对象的压缩质量。此方法是 MagickWand
的 MagickSetCompressionQuality
函数的包装器。 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
结构包含 Image
和 ImageInfo
结构的实例,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
非常好。
我在Imagick中找到了两种设置图片压缩质量的方法
A) 设置图像压缩质量
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
设置当前图像的压缩质量。此方法是 MagickWand
的 MagickSetImageCompressionQuality
函数的包装器。 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
设置整个对象的压缩质量。此方法是 MagickWand
的 MagickSetCompressionQuality
函数的包装器。 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
结构包含 Image
和 ImageInfo
结构的实例,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
非常好。