2011-12-04 3 views
1

Quand je générer des vignettes à l'aide Imagick, je charge l'image une fois, en utilisant:Génération Beaucoup de vignettes Utilisation Imagick

$im = new Imagick($filePath);

Ensuite, je passe cet objet $im autour de créer différentes tailles en utilisant

$im->thumbnailImage($newX, $newY); 

Cependant, j'ai observé que lorsque j'utilise la même ressource image $im, la qualité des blobs de l'image n'est pas aussi bonne que si je relis le fichier et que je commence à partir de nouveau en ouvrant le f ile encore.

Cela me fait penser, que je devrais peut-être faire quelque chose après que je fais un thumbnailImage() afin de le réinitialiser à la ressource de fichier d'origine?

De plus, après avoir fait un cropImage() je ne peux pas obtenir le $im à l'image originale. J'ai essayé d'utiliser $im->setImagePage(0, 0, 0, 0); sans aucune chance.

Y a-t-il quelque chose que je devrais faire au lieu d'utiliser thumbnailImage pour obtenir la meilleure qualité? En outre, si l'image originale est 32kb, le $im quand je l'écris finalement, est comme 90kb.

Répondre

0

Vous devez clone votre objet avant de faire une vignette:

$im_thumb = clone $im; 

Pour créer des images à faible taille utilise la méthode setCompressionQuality, normalement 60 ou 70 fait le travail.

(nombre d'échantillons dans les liens ci-dessus) PHP

j'ai généralement des résultats plus rapides en utilisant la bibliothèque GD, de nombreuses instructions/échantillons pour redimensionner here

Questions connexes