Newsgroup: it.comp.www.php
Titolo: Visualizzare immagini con PHP

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 
 

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.

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...


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>


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...


 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.
 

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) :-)



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/