note 26715 added to ref.image
| From: | scorpio at rack1 dot php dot net | Date: | Sun, 10 Nov 2002 14:34:34 +0000 |
| Subject: | note 26715 added to ref.image | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-39255@lists.php.net to get a copy of this message | ||
El siguiente es un pequeño código que centra un texto sobre una imágen PNG calculando el alto y
ancho de la imágen y también el alto y ancho de la fuente.
Luego multiplica el ancho de la fuente por la cantidad de caracteres para obtener el ancho de la
cadena y finalmente obtiene las coordenadas xy para comenzar a mostrar el texto.
Utilicé las fuentes preinstaladas, porque me parecen mucho mas fáciles de usar ya que no se
requieren muchas cosas.
<?
Header("Content-type: image/png"); // Cabecera de imagen
$im = imagecreatefrompng("img.png"); // Crea una imagen desde el png
$tamfnt= 5; // Tamaño de la fuente (1...5)
$altfnt= imagefontheight($tamfnt); // Alto de la fuente
$ancfnt= imagefontwidth($tamfnt); // Ancho de la fuente
$altimg= imagesy($im); // Alto de la imagen
$ancimg= imagesx($im); // Ancho de la imagen
$color= "250"; // Según tabla PNG 250=blanco
$num=3456; // Variable numerica
$tex="Num: $num"; // Variable completa
$larcan=strlen($tex); // Largo de la cadena
$vy=($altimg-$altfnt)/2; // Vector Y centrado en base al alto de fuente
$vx=($ancimg-($ancfnt*$larcan))/2; // Vector X centrado en base al ancho de fuente
multiplicado por largo de cadena
imagestring($im,$tamfnt,$vx,$vy,$tex,$color); // Genera el texto sobre la imagen
Imagepng($im); // Muestra imagen con texto sobreimpreso
ImageDestroy($im); // Destruye la imagen
?>
Espero que les pueda servir, es para un contador de visitas.
Luego se llama la imagen desde un html como a cualquier imagen.
Un Saludo, Hernán desde Buenos Aires- Argentina
--
http://www.php.net/manual/en/ref.image.php
http://master.php.net/manage/user-notes.php?action=edit+26715
http://master.php.net/manage/user-notes.php?action=delete+26715
http://master.php.net/manage/user-notes.php?action=reject+26715