it-swarm.com.de

Warnung: imagejpeg () [Funktion: imagejpeg]: Gd-jpeg: Die JPEG-Bibliothek meldet einen nicht behebbaren Fehler

Ich habe die WordPress-Installation in meinem Stammordner.

bis gestern hat es gut funktioniert, aber heute gibt es folgende fehler für die erstellung von thumbnail images,

Warning: imagejpeg() [function:imagejpeg]: Gd-jpeg: JPEG library reports unrecoverable error: in public_html/wp-includes/media.php on line 459

hat jemand eine Idee bezüglich dieser Warnung?

Bitte hilf mir

der folgende Code befindet sich in Zeile 459

if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )
19
mack

1) Überprüfen Sie den Speicherplatz auf der Festplatte

Ihr System muss über ausreichend Speicherplatz verfügen

2) Überprüfen Sie die Speichergrenze

Setze mehr Speicher in deinem PHP:

ini_set("memory_limit","256M");

3) Überprüfe die post_max_size und upload_max_filesize

Setzen Sie mehr in Ihre htaccess-Datei:

php_value post_max_size 16M
php_value upload_max_filesize 6M

4) @ vor die Funktion setzen

@imagejpeg(..............);

Punkt 1) arbeitete für mich.

14
Fernando

Sie haben wahrscheinlich versucht, ein Bild aus jpeg zu erstellen, das nicht jpeg ist.

Ich habe die gleiche Fehlermeldung erhalten, als ich ein Thumbnail-Skript inPHP..__ testete. Dann fand ich, dass der Header meiner Eingabedatei png war, obwohl die Erweiterung .jpg war.

Also habe ich mein Skript so bearbeitet, dass bei einem Fehler beim Erstellen eines Bildes aus jpeg versucht wird, es aus png(oder gif, falls ein anderer Fehler auftritt) zu erstellen.

34

Ich habe den gleichen Fehler. Aber jetzt ist das gleiche Problem gelöst. 

Antwort ist: Wir laden png hoch und es wird in jpg konvertiert. 
Bitte überprüfen Sie mit jpg, dass es funktioniert.

Der folgende Code ist nützlich, um Bilder mit Gd Library zu konvertieren.

//variable declare or parameter use
$originalImage ="1.jpg";
$quality=100; // for jpg good quality
$outputImage;   //for source file save.  


// jpg, png, gif or bmp?
    $exploded = explode('.',$originalImage);
    $ext = $exploded[count($exploded) - 1]; 

    if (preg_match('/jpg|jpeg/i',$ext))
        $imageTmp=imagecreatefromjpeg($originalImage);
    else if (preg_match('/png/i',$ext))
        $imageTmp=imagecreatefrompng($originalImage);
    else if (preg_match('/gif/i',$ext))
        $imageTmp=imagecreatefromgif($originalImage);
    else if (preg_match('/bmp/i',$ext))
        $imageTmp=imagecreatefrombmp($originalImage);
    else
        return 0;

    // quality is a value from 0 (worst) to 100 (best)
    imagejpeg($imageTmp, $outputImage, $quality);
    imagedestroy($imageTmp);
3
shashik493

Sie müssen eine Funktion verwenden, um den Mime-Typ des Bildes richtig zu bestimmen. Ein PNG-Bild mit einer JPG-Erweiterung führt zu diesem Fehler.

Um diesen Fehler zu vermeiden, müssen Sie korrekten MIME-Typ des Bildes erhalten.

function getImage($path) {
switch(mime_content_type($path)) {
  case 'image/png':
    $img = imagecreatefrompng($path);
    break;
  case 'image/gif':
    $img = imagecreatefromgif($path);
    break;
  case 'image/jpeg':
    $img = imagecreatefromjpeg($path);
    break;
  case 'image/bmp':
    $img = imagecreatefrombmp($path);
    break;
  default:
    $img = null; 
  }
  return $img;
}
3
Muthu Kumar

Unter PHP7 begann imagecreatefromjpeg mit schwerwiegenden Fehlern, wenn Sie versuchen, eine ungültige Datei zu öffnen, die selbst das @-Zeichen nicht fangen kann.

Verwenden Sie stattdessen Folgendes:

$im = imagecreatefromstring(file_get_contents($filename));
if ($im !== false) { ... }
0
Simon Epskamp