PDA

View Full Version : [PHP] Errore nel far visualizzare immagine


Rossi88
03-04-2010, 11:00
Essenzialmente vorrei semplicemente creare un'immagine con PHP e poi visualizzarla sul browser, cosa che dovrebbe essere banale ma niente da fare ricevo sempre lo stesso errore:

L'immagine "indirizzo" non può essere visualizzata perchè contiene degli errori

oppure in inglese per chi preferisce :)

The image "indirizzo" cannot be displayed, because it contains errors.

Il problema è che l'errore mi esce anche copiando paro paro il codice riporato nella documentazione ufficiale PHP:doh: e capita anche se l'immagine non la carico ma la creo direttamente con PHP

riporto un esempio

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Prova Immagine </title>
</head>
<body>
<?php
$im = imagecreatefrompng("FrecciaInBasso.png");
imagepng($im,'Prova.png');

header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>
</body>
</html>

Di sicuro l'immagine la carica tant'è che la salva, ma non ne vuole sapere di farla visualizzare.
L'errore esce solo in Firefox, comunque anche gli altri browser non visualizzano l'immagine.

Ogni suggerimento è ben apprezzato :-D

Rossi88
03-04-2010, 11:27
Come soluzione momentanea salvo l'immagine e poi utilizzo il tag <img> di HTML

RagingBull
03-04-2010, 19:53
Come soluzione momentanea salvo l'immagine e poi utilizzo il tag <img> di HTML

La soluzione da te adottata non è momentanea ma definitiva.

Sono andato a pescare l'esempio da te visto nella documentazione di PHP: se hai notato si tratta di una funzione che viene richiamata subito dopo la dichiarazione del Content-type (ovvero il tipo di documento).

Così come tu hai scritto e come se stessi dicendo al server che vuoi una immagine PNG scritta in HTML (alquanto difficile non credi?).

Gli errori di cui ti informa il server si riferiscono proprio a questo.

Spero di essere stato esaustivo e chiaro: il mal di testa non aiuta. :(

bobbytre
03-04-2010, 23:48
Essenzialmente vorrei semplicemente creare un'immagine con PHP e poi visualizzarla sul browser, cosa che dovrebbe essere banale ma niente da fare ricevo sempre lo stesso errore:

L'immagine "indirizzo" non può essere visualizzata perchè contiene degli errori

oppure in inglese per chi preferisce :)

The image "indirizzo" cannot be displayed, because it contains errors.

Il problema è che l'errore mi esce anche copiando paro paro il codice riporato nella documentazione ufficiale PHP:doh: e capita anche se l'immagine non la carico ma la creo direttamente con PHP

riporto un esempio

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Prova Immagine </title>
</head>
<body>
<?php
$im = imagecreatefrompng("FrecciaInBasso.png");
imagepng($im,'Prova.png');

header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>
</body>
</html>

Di sicuro l'immagine la carica tant'è che la salva, ma non ne vuole sapere di farla visualizzare.
L'errore esce solo in Firefox, comunque anche gli altri browser non visualizzano l'immagine.

Ogni suggerimento è ben apprezzato :-D

prova a copiare nella tua pagina .php solo questo

<?php
$im = imagecreatefrompng("FrecciaInBasso.png");
imagepng($im,'Prova.png');

header('Content-type: image/png');

imagepng($im);
imagedestroy($im);

DanieleC88
04-04-2010, 23:03
Così come tu hai scritto e come se stessi dicendo al server che vuoi una immagine PNG scritta in HTML (alquanto difficile non credi?).
Precisamente, non mi risulta che esistano immagini PNG "ben formate" che inizino con un DOCTYPE header e svariate tag HTML.... :p

Quello script PHP va ovviamente separato dal resto della pagina web, visto che deve fornire un output dinamico di natura completamente diversa. :)

Rossi88
05-04-2010, 10:24
Ringrazio tutti per l'aiuto è esattamente come avete detto, problema risolto.

:)

Volevo aggiungere che anzichè salvare l'immagine ed richiamarla tramite l'attributo src del tag <img>, pongo direttamente l'attributo src="Indirizzo della pagina php in cui c'è il codice

<?php
...
imagepng($img);
?>


"