Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Visualizzare immagini con PHP

569 views
Skip to first unread message

Delta Electronics

unread,
Sep 1, 2013, 10:09:22 AM9/1/13
to
Premetto che:

-) Nel file php.ini la riga extension=php_gd2.dll non è commentata;
-) Apache Server l'ho riavviato almeno un migliaio di volte
-) lo script: print_r(gd_info()) mi restituisce il seguente output:
Array
(
[GD Version] => bundled (2.1.0 compatible)
[FreeType Support] => 1
[FreeType Linkage] => with freetype
[T1Lib Support] =>
[GIF Read Support] => 1
[GIF Create Support] => 1
[JPEG Support] => 1
[PNG Support] => 1
[WBMP Support] => 1
[XPM Support] => 1
[XBM Support] => 1
[JIS-mapped Japanese Font Support] =>
)
-) Il percorso all'immagine è corretto in quanto lo script
imagecreatefromjpeg($pathfile) mi restituisce "TRUE" e riesco ad ottenere
correttamente le informazioni da imageinfo($pathfile);
Quando provo ad eseguire lo script
header('Content-Type: image/jpg');
imagejpeg($image,'C:prova.jpg');
imagejpeg($image);

Tutto ciò che ottengo è una schermata nera sul browser con un messaggio che
mi dice che l'immagine (mi dà anche l'URL:http:localhost:8080/MioScript.php)
non può essere visualizzata perchè contiene errori.
Se con imagejpg provo però a salvarla su file, questo avviene normalmente;
inoltre questo messaggio mi arriva anche con tutte le altre immagini (anche
di altro tipo) che comunque riesco a visualizzare tranquillamente.
Ringrazio anticipatamente tutti coloro che vorranno aiutarmi.
DeltaElectronics

Leonardo Serni

unread,
Sep 1, 2013, 3:34:44 PM9/1/13
to
On Sun, 1 Sep 2013 16:09:22 +0200, "Delta Electronics" <hyda...@live.it>
wrote:

>Quando provo ad eseguire lo script
>header('Content-Type: image/jpg');
>imagejpeg($image,'C:prova.jpg');
>imagejpeg($image);

Sostituisci lo script intanto con questo:

header('Content-Type: text/plain'); // Cambio gli header!
imagejpeg($image,'C:prova.jpg');
imagejpeg($image);

Cosi', potrai leggere eventuali messaggi di errore (che dovresti trovare -
pero' - anche nel logfile. Ci hai guardato?)

Per esempio: "$image non e' stata inizializzata" oppure "non posso salvare
l'immagine C:prova.jpg".

Quest'altro script dovrebbe funzionare

Header('Content-Type: image/jpeg');
$image = imageCreateFromJPEG("C:\\prova-che-deve-esserci.jpg");
imageJPEG($image);
imageDestroy($image); // l'igiene innanzitutto

Leonardo

--

Then felt I like some watcher of the skies, when a new planet swims into his ken;
Or like stout Cortez when with eagle eyes, he star'd at the Pacific; and all his men
Look'd at each other with a wild surmise - silent, upon a peak in Darien.

Delta Electronics

unread,
Sep 6, 2013, 6:48:55 AM9/6/13
to
Grazie innanzi tutto di avermi dedicato del tuo tempo a rispondermi;
Ho fatto alcune prove ed ho notato che l'errore si presenta unicamente se
inserisco dei tag HTML;
mi spiego meglio:
Se faccio eseguire questo codice in un browser
"
<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);
?>
"
Tutto funziona regolarmente e l'immagine viene visualizzata, se invece
faccio eseguire quest'altro codice
"
<DOCTYPE HTML>
<head>
<title> TITOLO PAGINA </title>
</head>
<html>
<body>

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);
?>
?>
</body>
</html>
"
Mi compare l'errore.
Come mai ?
E' forse un difetto della libreria GD ?

"Leonardo Serni" ha scritto nel messaggio
news:ef5729p874n26nlkc...@L.Serni...

Leonardo Serni

unread,
Sep 6, 2013, 9:07:55 AM9/6/13
to
On Fri, 6 Sep 2013 12:48:55 +0200, "Delta Electronics" <hyda...@live.it>
wrote:

>Grazie innanzi tutto di avermi dedicato del tuo tempo a rispondermi;
>Ho fatto alcune prove ed ho notato che l'errore si presenta unicamente se
>inserisco dei tag HTML

><body>
><?php
>// Create a blank image and add some text
>$im = imagecreatetruecolor(120, 20);
>$text_color = imagecolorallocate($im, 233, 14, 91);
>imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
>
>// Set the content type header - in this case image/jpeg
>header('Content-Type: image/jpeg');
>
>// Output the image
>imagejpeg($im);

>Mi compare l'errore.
>Come mai ?
>E' forse un difetto della libreria GD ?

Eh... no. E' che non hai chiaro come e' strutturato HTML :-)

Non puoi inserire una immagine DIRETTAMENTE in una pagina Web. Devi metterci
un tag IMG che punti a un altro file PHP che invia l'immagine:

<body>
<img src="immagine.php" />
</body>

Delta Electronics

unread,
Sep 7, 2013, 5:13:20 AM9/7/13
to
quindi se scrivessi
<body>
<img src="<?php imagejpeg($image) ?>"/>
</body>
dovrebbe funzionare ?
Non mi resta che provare....... per il momento ti ringrazio ancora.
Deltaelectronics

"Leonardo Serni" ha scritto nel messaggio
news:3pkj295o6v5afvj08...@L.Serni...

Alessandro Pellizzari

unread,
Sep 7, 2013, 5:19:40 AM9/7/13
to
On Sat, 07 Sep 2013 11:13:20 +0200, Delta Electronics wrote:

> quindi se scrivessi <body>
> <img src="<?php imagejpeg($image) ?>"/>
> </body>
> dovrebbe funzionare ?

No.

Rileggi il messaggio di Leonardo.

Hint: in HTML ogni risorsa è un file a parte. Esempi di risorse: html,
immagine, javascript, css, swf, ...

Bye.

Leonardo Serni

unread,
Sep 7, 2013, 6:21:57 AM9/7/13
to
On Sat, 7 Sep 2013 11:13:20 +0200, "Delta Electronics" <hyda...@live.it>
wrote:

>quindi se scrivessi
><body>
><img src="<?php imagejpeg($image) ?>"/>
></body>
>dovrebbe funzionare ?

No. Funziona se e solo se fai come dico io :-D

Okay, non e' vero. C'e' un altro modo sporco che impiega base64, ma fa parte
del corso avanzato (e ha altri problemi, come tutto) :-)

Giulio Muscarello

unread,
Sep 7, 2013, 6:26:39 AM9/7/13
to
Non puoi inserire un'immagine "direttamente" in src, però esiste un workaround: la puoi inserire con l'encoding base64, quindi qualcosa tipo

echo '<img src="data:image/jpg;base64,'. base64_encode(imagejpeg($image)).'" />';

Guarda ad esempio questo fiddle: http://jsfiddle.net/qCXfx/
0 new messages