Newsgroup: it.comp.www.php
Titolo: imagecreate in html

Salve,
ho una pagina in php dove vorrei che alcuni nomi (dinamici) che lo script mi
sputa siano trasformati in immagini grafiche basate su un font da me
assegnato.
Il codice per creare l'immagine dal font è il seguente:
<?php
  header("Content-type: image/png");
  $im = imagecreate(500,25);
  $white = imagecolorallocate($im, 255,255,255);
  $black = imagecolorallocate($im, 0,0,0);
  // Replace path by your own font path
  imagettftext($im, 20, 0, 2, 20, $black, "msgothic.ttc","Galleria
fotografica della sfungia");
  imagepng($im);
  imagedestroy($im);
?>
Il codice "da solo", cioè così come si vede, funziona bene; se inserito in
una pagina php (ad esempio in un menù dinamico), mi genera un sacco di
errori (codice ascii o simile...)..
Come posso risolvere il problema?
Ho provato anche ad eliminare ovviamente la riga "header("Content-type:
image/png");", ma senza esito.
Grazie per l'aiuto.
Francesco.

errori
Certo. Hai mai visto una pagina HTML contenente delle immagini? Dentro
mica ci sono le immagini, ci sono i tag <IMG>. E quelli tu devi fare.
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 ha scritto nel messaggio
news:n86trvcu54s0nj9cj...@L.Serni...


dove sbaglio???
Prova a modificare cosi' il tuo script
<?php
  error_reporting(E_ALL);
  $im = imagecreate(500,25);
  $white = imagecolorallocate($im, 255,255,255);
  $black = imagecolorallocate($im, 0,0,0);
  imagettftext($im, 20, 0, 2, 20, $black,
"msgothic.ttc",$_REQUEST['voce']);
  header("Content-type: image/png");
  imagepng($im);
?>
e poi metti "voci.php?voce=variabile" nell'indirizzo del browser in modo
che carichi solo l'immagine.
Dovrebbe comparirti appunto l'immagine, oppure un errore un pochino piu'
informativo della misera crocetta di Explorer :-)


 > wrote: > ><img src="voci.php?voce=variabile"> > >ma mi viene fuori il simbolo con la crocetta (immagine non trovata); > >dove sbaglio??? > Prova a modificare cosi' il tuo script > <?php >   error_reporting(E_ALL); >   $im = imagecreate(500,25); >   $white = imagecolorallocate($im, 255,255,255); >   $black = imagecolorallocate($im, 0,0,0); >   imagettftext($im, 20, 0, 2, 20, $black, > "msgothic.ttc",$_REQUEST['voce']); >   header("Content-type: image/png"); >   imagepng($im); > ?> > e poi metti "voci.php?voce=variabile" nell'indirizzo del browser in modo > che carichi solo l'immagine. > Dovrebbe comparirti appunto l'immagine, oppure un errore un pochino piu' > informativo della misera crocetta di Explorer :-) > Leonardo > --  > Time's angles, mages tell, conceal a place > incredible, beyond the mundane mind; > night-shrouded and between the seas of space > dread creatures drift in the ageless winds. 

 ha scritto nel messaggio
news:efa2sv024ub440nee...@L.Serni...


 
Dal manuale:
Depending on which version of the GD library that PHP is using, when 
fontfile does not begin with a leading '/', '.ttf' will be appended to 
the filename and the library will attempt to search for that filename 
along a library-defined font path
Proverei quindi così:
imagettftext($im, 20, 0, 2, 20, $black, "./msgothic",$_REQUEST['voce']);
oppure con 'realpath'
Prova a dare un'occhiata alle user notes sul manuale, spesso qualcuno 
che è già incappato nel tuo stesso problema lo ha già risolto.
Ciao
Hope it helps

Come mai?
O la font non c'e', o si chiama in un altro modo (maiuscole/minuscole),
oppure non ha le ownership/permission corrette.
<?php
	error_reporting(E_ALL);
	$font = 'msgothic.ttc';
	if (!file_exists($font)) die("$font non trovata");
	if (!is_readable($font)) die("$font trovata ma non leggibile");
	// ...altri controlli che ora non mi vengono in mente...
	$im = imagecreate(500,25);
	$white = imagecolorallocate($im, 255,255,255);
	$black = imagecolorallocate($im, 0,0,0);
	imagettftext($im, 20, 0, 2, 20, $black,
		$font,$_REQUEST['voce']);
	header("Content-type: image/png");
	imagepng($im);
?>
Leonardo
