Come faccio a elaborare i file jpg utilizzando ImageMagick (imagick API)? Io sono sempre un'eccezione, NoDecodeDelegateForThisImageFormat, whenver provo

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

  •  21-09-2019
  •  | 
  •  

Domanda

Sto usando ImageMagick con l'API di PHP imagick per elaborare i file jpg caricati - tuttavia, quando provo a leggere un Blob o anche leggere un file fisico, ottengo un'eccezione NoDecodeDelegateForThisImageFormat

.

Un esempio del codice che sto usando è qui sotto:

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'immagine che il blob rappresenta è un'immagine jpg, ma ImageMagick genera l'eccezione quando si cerca di leggere la riga:

$image->readImageBlob($blob);

Qualcuno sa il motivo per cui questo potrebbe accadere?

È stato utile?

Soluzione

ho capito la risposta al mio problema. La ragione per cui l'eccezione stava avvenendo era effettivamente dovuta al fatto che la biblioteca non ha avuto il supporto jpeg integrato, ma la ragione per cui questo è successo è perché la versione della estensione PHP Imagick e la versione della libreria ImageMagick erano diverse.

Un buon modo per assicurarsi di non incorrere in questo problema è quello di scaricare sia la libreria ImageMagick e l'estensione php Imagick, e specificamente guardare le versioni per vedere che corrispondano .

In alternativa, è possibile verificare la versione del vostro Imagick estensione php nella cartella php / ext abilitando nel file php.ini, e utilizzando

echo phpinfo();

per verificare la versione dell'estensione. Quindi, è possibile scaricare la stessa versione della libreria ImageMagick.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top