Immagine generata da GD PHP L'immagine non può essere visualizzata perché contiene errori in Firefox

Immagine generata da GD PHP L'immagine non può essere visualizzata perché contiene errori in Firefox [Italiano]

Quando si genera un'immagine con PHP, ad esempio aggiungendo una filigrana a un'immagine archiviata sul server, utilizzando il codice sottostante o simile con JPEG anziché PNG, l'immagine potrebbe non essere generata e generare un errore, direttamente visibile su Firefox, ma non su Chrome.

Questo tipo di codice, nonostante lavori su alcuni server, potrebbe ora funzionare su altri, a volte per motivi oscuri. Nel mio caso, ha funzionato perfettamente bene localmente, ma ha prodotto sotto l'errore sul server internet, l'immagine non può essere visualizzata perché contiene errori.

Il problema può venire da diversi motivi, eccone alcuni:

Un output è già stato impostato in precedenza.

Un vero errore dalla generazione di immagini.

Viene utilizzato il tipo di immagine errato.

La libreria di immagini non è installata.

$stamp = imagecreatefrompng('watermark.png');
if(!$im = imagecreatefrompng('image.png')) die('Error generating image');
$marge_right = $marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

$copyimage = imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
if(!imagedestroy($im)) die('Error generating image');
if(!imagedestroy($stamp)) die('Error generating image');

Un output è già stato impostato in precedenza

Anche se non intenzionalmente, potrebbe essere il caso ad esempio che altri script precedenti contenessero spazi alla fine - per evitare questo errore, assicurati, come raccomanda PHP, di non chiudere gli script con il tag di chiusura PHP?>

Quindi, prima di utilizzare la funzione di intestazione, utilizzare il seguente codice per assicurarsi che qualsiasi intestazione precedentemente impostata venga eliminata

foreach (getallheaders() as $name => $value) {
header_remove($name);
}

E anche questa funzione per assicurarsi che nessun output sia stato generato prima dell'intestazione e dell'immagine

ob_end_clean();

Questo ha risolto il problema nel mio caso e l'immagine è stata correttamente visualizzata di nuovo.

Un vero errore dalla generazione di immagini

Nel caso in cui sia stato generato un errore reale durante la generazione dell'immagine, assicurarsi che PHP sia impostato per visualizzare tutti i possibili tipi di errori e controllare i registri corrispondenti, in modo da essere in grado di rintracciarlo e risolverlo.

Il codice seguente renderà tutti gli errori nel registro di PHP:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Potresti quindi scoprire che sono stati segnalati alcuni errori, anche se non sono stati visualizzati nell'output html, a causa della configurazione del server.

Viene utilizzato il tipo di immagine errato

Assicurati che i tipi di immagine che stai utilizzando siano corretti, ad esempio usando questo codice per distinguere tra png e jpeg.

Assicurati inoltre che l'intestazione sia corretta in base all'output utilizzato, a seconda della funzione di generazione dell'immagine utilizzata

//to generate png image
header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
//to generate jpeg image
header('Content-type: image/jpeg');
if(!imagejpeg($im)) die('Error generating image');

La libreria di immagini non è installata

Per assicurarsi che le librerie di immagini siano installate. Per fare ciò, eseguire la funzione phpinfo (); in uno script e controlla l'output per il seguente valore relativo a PHP GD, la libreria grafica che viene utilizzata da funzioni come imagepng ();

Nel caso in cui i pacchetti siano mancanti, il modo per risolverli dipende dalla configurazione locale, aggiungendo il pacchetto utilizzando i comandi PEAR o utilizzando la soluzione integrata di web host per l'installazione del pacchetto.

Cosa fare quando imagejpeg o imagepng non funziona

In NotePad ++, apri il file PHP che chiama la funzione imagepng e salvalo dopo aver visualizzato il menu Codifica> Converti in UTF-8 senza BOM.

In DreamWeaver, vai a Proprietà pagina> Titolo / codifica> deseleziona Includi firma Unicode (BOM).

Quando PHP imagejpeg o imagepng non funziona, è molto probabilmente dovuto al fatto che il file PHP è stato codificato con una distinta base, una distinta base, e quindi le informazioni extra vengono inviate con l'immagine prima dei dati dell'immagine.

Le funzioni PHP imagejpeg e PHP imagepng sono funzioni utilizzate per inviare un codice immagine direttamente nella risposta del server.

PHP - imagepng non funziona correttamente
PHP - funzione imagepng
PHP - funzione imagejpeg

Galleria fotografica

Immagine generata da GD PHP L'immagine non può essere visualizzata perché contiene errori in Firefox : Errore L'immagine non può essere visualizzata perché contiene errori su Firefox
Immagine generata da GD PHP L'immagine non può essere visualizzata perché contiene errori in Firefox : Immagine generata dinamicamente usando PHP
Immagine generata da GD PHP L'immagine non può essere visualizzata perché contiene errori in Firefox : Dettagli del pacchetto GD di PHP che utilizzano la funzione phpinfo ()

Articoli simili

Commentoi (6)

Irvin Vasquez, 2018-08-19
Simple, clear and well explained, many thanks
Joyce Lawrence, 2018-08-19
ありがとう、非常に有益な
Catherine Roberts, 2018-08-19
Dokładnie tego, czego szukałem, idealnie
Headlinext, 2018-08-19
जानकारी का महान टुकड़ा, साझा करने के लिए धन्यवाद
Marshel, 2018-08-19
विश्वास नहीं कर सकता कि मुझे अंत में समाधान मिला, यह लंबे समय तक एक दुःस्वप्न था, अब हल हो गया
porcateraC, 2018-08-19
بالضبط ما كنت أبحث عنه ، مثالي

lascia un commento

Aumenta le entrate pubblicitarie del 50-250% con Ezoic. Un partner di pubblicazione certificato di Google.
Aumenta le entrate pubblicitarie del 50-250% con Ezoic. Un partner di pubblicazione certificato di Google.
 
Aumenta le entrate pubblicitarie del 50-250% con Ezoic. Un partner di pubblicazione certificato di Google.
Aumenta le entrate pubblicitarie del 50-250% con Ezoic. Un partner di pubblicazione certificato di Google.