Wie verarbeiten ich jpg-Dateien ImageMagick (Imagick API) verwenden? Ich erhalte eine Ausnahme, NoDecodeDelegateForThisImageFormat, whenver ich versuche,

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

  •  21-09-2019
  •  | 
  •  

Frage

Ich bin mit ImageMagick mit der PHP Imagick API Prozess hochgeladen jpg-Dateien -. Aber wenn ich versuche, ein Blob zu lesen oder sogar eine physische Datei lesen, ich eine NoDecodeDelegateForThisImageFormat Ausnahme erhalten

Ein Beispiel für den Code, den ich verwende, ist unten:

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;
}

Das Bild, das die Blob darstellt, ist ein JPG-Bild, aber ImageMagick wirft die Ausnahme, wenn es versucht, die Zeile zu lesen:

$image->readImageBlob($blob);

Weiß jemand, warum dies passiert sein könnte?

War es hilfreich?

Lösung

dachte ich, die Antwort auf mein Problem heraus. Der Grund für die Ausnahme auftritt war in der Tat aufgrund der Tatsache, dass die Bibliothek nicht jpeg Unterstützung gebaut hat, aber der Grund, warum dies geschehen war, weil die Imagick PHP-Erweiterung Version und die Version der ImageMagick Bibliothek unterschiedlich war.

Ein guter Weg, sicher nicht machen in dieses Problem laufen soll sowohl die ImageMagick-Bibliothek und die Imagick PHP-Erweiterung herunterladen, und sucht gezielt die Versionen an, um zu sehen, dass sie zusammenpassen .

Alternativ können Sie die Version Ihres Imagick PHP-Erweiterung in den php / ext Ordnern überprüfen, indem es in der php.ini-Datei ermöglicht, und mit

echo phpinfo();

, um die Version der Erweiterung zu prüfen. Dann können Sie die gleiche Version der ImageMagick Bibliothek herunterladen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top