imagecreatefromjpeg() : gd-jpeg : JPEG library reports unrecoverable error

Chyba, která se objevuje u nových verzí PHP. Objevuje se, pokud se pokoušíme vytvořit obrázek z JPG funkcí imagecreatefromjpeg(), avšak soubor není typu jpeg.

Dle dokumentace PHP má funkce imagecreatefromjpeg() vrátit false, ale v tomto případě vyhodí fatální chybu “JPEG library reports unrecoverable error” a skript skončí. Zřejmě je někde chyba v GD2 knihovně, nevím. V každém případě takto se chyba alespoň dá obejít.

function getImageFromFile($filePath)
{
   switch(exif_imagetype($filePath))
   {
      case IMAGETYPE_JPEG:
         return @\imagecreatefromjpeg($filePath);
         break;
      case IMAGETYPE_PNG:
         return @\imagecreatefrompng($filePath);
         break;
      case IMAGETYPE_GIF:
         return @\imagecreatefromgif($filePath);
         break;


   }

   return null;
}

Vlastně se tato funkce hodí pro každý load obrázků 🙂