Comment traiter les fichiers jpg en utilisant (API) imagick ImageMagick? Je reçois une exception, NoDecodeDelegateForThisImageFormat, j'essaie whenver

StackOverflow https://stackoverflow.com/questions/2285161

  •  21-09-2019
  •  | 
  •  

Question

J'utilise ImageMagick avec l'API PHP imagick pour traiter les fichiers téléchargés jpg - cependant, lorsque je tente de lire un Blob ou même lire un fichier physique, je reçois une exception NoDecodeDelegateForThisImageFormat

.

Un exemple du code que je utilise est ci-dessous:

private function resizeImageBlob($blob, $width, $height) {
    $image = new Imagick();
    $image->readImageBlob($blob);
    $image->resizeImage($width, $height, IMAGICK::FILTER_LANCZOS, 1);
    $resizedBlob = $image->getImageBlob();

    return $resizedBlob;
}

L'image que le blob représente est une image jpg, mais ImageMagick lève l'exception quand il essaie de lire la ligne:

$image->readImageBlob($blob);

Quelqu'un sait-il pourquoi cela pourrait se produire?

Était-ce utile?

La solution

Je me suis dit la réponse à mon problème. La raison pour laquelle l'exception se produisait était en effet en raison du fait que la bibliothèque n'a pas le soutien jpeg construit, mais la raison pour laquelle cela est arrivé était parce que la version de l'extension php Imagick et la version de la bibliothèque ImageMagick étaient différentes.

Une bonne façon de vous assurer de ne pas courir ce problème est à télécharger à la fois la bibliothèque ImageMagick et l'extension php Imagick, et examiner spécifiquement les versions pour voir qu'ils correspondent .

Vous pouvez vérifier la version de votre Imagick extension php dans le dossier php / ext en permettant dans votre fichier php.ini, et en utilisant

echo phpinfo();

pour vérifier la version de l'extension. Ensuite, vous pouvez télécharger la même version de la bibliothèque ImageMagick.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top