La méthode setImageCompressionQuality
définit la qualité de compression pour votre image actuelle. Cette méthode est un wrapper pour la fonction MagickSetImageCompressionQuality
de MagickWand
. Source code est:
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);
}
Le procédé setCompressionQuality
définit la qualité de compression pour l'objet entier. Cette méthode est un wrapper pour la fonction MagickSetCompressionQuality
de MagickWand
. Source code est:
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);
}
Le MagickWand
struct détient des instances de Image
et ImageInfo
, struct source:
struct _MagickWand
{
...
Image
*images; /* The images in this wand - also the current image */
ImageInfo
*image_info; /* Global settings used for images in Wand */
...
};
Les deux Image
and ImageInfo
struct détiennent un membre de données size_t quality;
. Donc, pour votre exemple setImageCompressionQuality
est parfaitement bien.
Selon la page php Imagick: http://php.net/manual/fr/book.imagick.php, l'un est pour un objet et l'autre pour une image. "J'ai lu que la méthode setCompressionQuality ne fonctionne que pour les nouvelles images (?)" Oui comme il est dit sur la page ci-dessus. Donc, un seul fonctionnera dans votre situation. – Bonzo