¿Cómo proceso Utiliza archivos JPG (API) imagick ImageMagick? Me estoy haciendo una excepción, NoDecodeDelegateForThisImageFormat, whenver Trato

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

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy usando ImageMagick con la API PHP imagick para procesar archivos jpg subidos - sin embargo, cuando trato de leer un Blob o incluso leer un archivo físico, recibo una excepción NoDecodeDelegateForThisImageFormat

.

Un ejemplo del código que estoy usando es el siguiente:

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

La imagen que representa la burbuja es una imagen jpg, pero ImageMagick lanza la excepción cuando se trata de leer la línea:

$image->readImageBlob($blob);

¿Alguien sabe por qué esto podría estar sucediendo?

¿Fue útil?

Solución

Me di cuenta de la respuesta a mi problema. La razón se estaba produciendo la excepción fue en efecto, debido al hecho de que la biblioteca no tiene soporte JPEG incorporada, pero la razón de que esto ocurrió fue porque la versión del php de extensión Imagick y la versión de la biblioteca ImageMagick eran diferentes.

Una buena manera de asegurarse de no encontrarse con este problema es descargar tanto la biblioteca ImageMagick y la extensión php Imagick, y, específicamente, mirar las versiones para asegurarse que coincidan .

Como alternativa, se puede comprobar la versión de su extensión Imagick PHP en la carpeta php / ext al permitir que en su archivo php.ini, y utilizando

echo phpinfo();

para comprobar la versión de la extensión. Entonces, se puede descargar la misma versión de la librería ImageMagick.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top