Autor Tema: Imagen con textos predefinidos  (Leído 2763 veces)

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #15 en: 30 de Marzo de 2010, 20:07:04 pm »
Haber lo último de echo mi archivo.php no he entendido. ¿Tengo que poner miarchivo.png o el .php? ¿Y dónde tengo que ponerlo?

EDITO: ¿Hay alguna manera de poner que se centre el texto en la imagen y cambiar la fuente y el tamaño? ¿Y hay alguna otra manera de que el usuario suba su imagen y esta se redimensione a las medidas de la tarjeta? Y ya que estamos, ¿Hay alguna manera de poner una restricción de carácteres, de que no pasen de X carácteres alfanumericobarrabajicos xD?

He añadido //$font = imageloadfont('arial.ttf');, el problema es que si lo quito de comentario, da error. Dice que no es posible bla bla bla porque hay errores. ¿Qué pasa ahí? //PD: Si que he subido el archivo arial.ttf al servidor

Muchísimas gracias :)

http://farmville.vacau.com/

Código actualizado:

Código PHP
<?php
$nick 
$_POST[&#39;nick&#39;];
$gamertag $_POST[&#39;gamertag&#39;];
$psn $_POST[&#39;psn&#39;];
$wii $_POST[&#39;wii&#39;];
$steam $_POST[&#39;steam&#39;];

header(&#39;Content-type: image/png&#39;);
$imagen imagecreatefrompng("imagen.png"); //Sirve para cargar un .png
$negro imagecolorallocate($imagen,0,0,0);

imagestring($imagen32169"$nick"$negro);
imagestring($imagen3282146"$gamertag"$negro);
imagestring($imagen3284192"$psn"$negro);
imagestring($imagen3284229"$wii"$negro);
imagestring($imagen3284264"$steam"$negro);

imagepng($imagen);
imagedestroy($imagen);
?>


Código HTML
Lo pongo en pequeño porque el HTML está bien
<html>
<head>
<title>Formulario</title>
</head>
<body>
<!-- Formulario -->
<form method="POST" action="script.php">
<b>Nick</b>: <input type="text" name="nick">
<br>
<b>Gamertag</b>: <input type="text" name="gamertag">
<br>
<br><b>PSN</b>: <input type="text" name="psn">
<br>
<br><b>Wii</b>:
<br><input type="text" name="wii"> <br>
<br><b>Steam</b>:
<br><input type="text" name="steam"> <br>
<input type="submit" name="creatarjeta" value="¡Crea tu tarjeta!">
</form>
</body>
</html>
« Última modificación: 01 de Abril de 2010, 18:37:58 pm por WildWolf360 »

Comunidad PHPeros

Re:Imagen con textos predefinidos
« Respuesta #15 en: 30 de Marzo de 2010, 20:07:04 pm »

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #16 en: 05 de Abril de 2010, 14:40:23 pm »
LLevo unos cuantos días sin recibir respuesta, así que hago este doble post para hacerle un up  :P


Saludos y muchas gracias ;)

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:Imagen con textos predefinidos
« Respuesta #17 en: 05 de Abril de 2010, 14:47:02 pm »
Yo he probado el script en la web que das y me funciona bien, hombre no esta centrado todo el texto pero fallos no hay...
Por favor, leete las Normas


Desconectado Rodrinete

  • PHPer@ Fijo
  • ***
  • Mensajes: 222
  • Karma: 6
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #18 en: 05 de Abril de 2010, 14:47:31 pm »
Bueno, voy a intentar ayudarte:

Para hacer una restricción de caracteres yo usaría substr()


<?php
$texto 
"hola hola hola hola";
$texto substr($texto09); # devolvería "hola hola" es decir 9 carácteres, el 0 es para indicar que se empieza desde la primera letra
echo $texto# "hola hola";
?>


En tu caso puedes hacerlo así:


imagestring
($imagen32169substr($nick010), $negro); # cambias el 10 por el numeros de caracteres que se muestren


En cuanto a las fuentes dinos que error te da cuando haces un imageloadfont()

Y en cuanto a centrar es complicado ya que debes usar otras funciones, déjame que lo busque que no lo recuerdo bien.

Saludos!


Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #19 en: 05 de Abril de 2010, 15:18:10 pm »
Yo he probado el script en la web que das y me funciona bien, hombre no esta centrado todo el texto pero fallos no hay...

OK gracias ;)

Bueno, voy a intentar ayudarte:

Para hacer una restricción de caracteres yo usaría substr()


<?php
$texto 
"hola hola hola hola";
$texto substr($texto09); # devolvería "hola hola" es decir 9 carácteres, el 0 es para indicar que se empieza desde la primera letra
echo $texto# "hola hola";
?>


En tu caso puedes hacerlo así:


imagestring
($imagen32169substr($nick010), $negro); # cambias el 10 por el numeros de caracteres que se muestren


En cuanto a las fuentes dinos que error te da cuando haces un imageloadfont()

Y en cuanto a centrar es complicado ya que debes usar otras funciones, déjame que lo busque que no lo recuerdo bien.

Saludos!


Perfecto la restricción de carácteres. Funciona a la perfección :)

Puedes comprobar tú mismo el resultado con el font en http://farmville.vacau.com/formulario2.html (NO me gusta el farmville, simplemente es un hosting de hace muchísimo tiempo xD). //error: No se puede mostrar la imagen “http://farmville.vacau.com/script2.php” porque contiene errores.
<?php
$nick 
$_POST[&#39;nick&#39;];
$gamertag $_POST[&#39;gamertag&#39;];
$psn $_POST[&#39;psn&#39;];
$wii $_POST[&#39;wii&#39;];
$steam $_POST[&#39;steam&#39;];

header(&#39;Content-type: image/png&#39;);
$font imageloadfont(&#39;arial.ttf&#39;); #font añadida
$imagen imagecreatefrompng("imagen.png"); //Sirve para cargar un .png
$negro imagecolorallocate($imagen,0,0,0);

imagestring($imagen$font2169substr($nick016), $negro);
imagestring($imagen$font282146substr($nick016), $negro);
imagestring($imagen$font284192substr($nick016), $negro);
imagestring($imagen$font284229substr($nick016), $negro);
imagestring($imagen$font284264substr($nick016), $negro);

imagepng($imagen);
imagedestroy($imagen);
?>


Y Rodri, ¿Qué querías decir con este mensaje?

Y otra cosa.


...
echo
"<br><br><br><hr>$gamertag $psn $wii $steam";
...


NUNCA LO PONGAS SI PUSISTE ANTES UN HEADER("Content-type: image/loquesea") PORQUE SE TRATARÁ A LA PÁGINA COMO UNA IMAGEN, y echo"<br><br><br><hr>$gamertag $psn $wii $steam"; ES TEXTO.

Así que o quítalo o incluye la imagen en otra página.


echo "<img src=\"miarchivo.php\">";
echo
"<br><br><br><hr>$gamertag $psn $wii $steam";


Esque no llego a entender lo que me quieres decir.

Gracias y un Saludo
« Última modificación: 05 de Abril de 2010, 15:19:45 pm por WildWolf360 »

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:Imagen con textos predefinidos
« Respuesta #20 en: 05 de Abril de 2010, 15:45:05 pm »
Y Rodri, ¿Qué querías decir con este mensaje?

Esque no llego a entender lo que me quieres decir.

Gracias y un Saludo
Quiere decir que como pretendes poner un texto en la imagen con echo, entonces quieres decir que imagestring no sirve ni para tirar!

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #21 en: 05 de Abril de 2010, 16:08:27 pm »
Perfecto la restricción de carácteres. Funciona a la perfección :)

Puedes comprobar tú mismo el resultado con el font en http://farmville.vacau.com/formulario2.html (NO me gusta el farmville, simplemente es un hosting de hace muchísimo tiempo xD). //error: No se puede mostrar la imagen “http://farmville.vacau.com/script2.php” porque contiene errores.
<?php
$nick 
$_POST[&#39;nick&#39;];
$gamertag $_POST[&#39;gamertag&#39;];
$psn $_POST[&#39;psn&#39;];
$wii $_POST[&#39;wii&#39;];
$steam $_POST[&#39;steam&#39;];

header(&#39;Content-type: image/png&#39;);
$font imageloadfont(&#39;arial.ttf&#39;); #font añadida
$imagen imagecreatefrompng("imagen.png"); //Sirve para cargar un .png
$negro imagecolorallocate($imagen,0,0,0);

imagestring($imagen$font2169substr($nick016), $negro);
imagestring($imagen$font282146substr($nick016), $negro);
imagestring($imagen$font284192substr($nick016), $negro);
imagestring($imagen$font284229substr($nick016), $negro);
imagestring($imagen$font284264substr($nick016), $negro);

imagepng($imagen);
imagedestroy($imagen);
?>


Quiere decir que como pretendes poner un texto en la imagen con echo, entonces quieres decir que imagestring no sirve ni para tirar!

¿Y qué sugieres?

Un Saludo ;)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #22 en: 05 de Abril de 2010, 16:12:10 pm »
Que quites el echo porque sino te va a seguir dando error.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:Imagen con textos predefinidos
« Respuesta #23 en: 05 de Abril de 2010, 16:12:46 pm »
Sugiero que sigas usando imagestring, ademas en las imagenes GD no se pueden poner hipervinculos

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #24 en: 05 de Abril de 2010, 16:19:22 pm »
Puedes comprobar tú mismo el resultado con el font en http://farmville.vacau.com/formulario2.html (NO me gusta el farmville, simplemente es un hosting de hace muchísimo tiempo xD). //error: No se puede mostrar la imagen “http://farmville.vacau.com/script2.php” porque contiene errores.
<?php
$nick 
$_POST[&#39;nick&#39;];
$gamertag $_POST[&#39;gamertag&#39;];
$psn $_POST[&#39;psn&#39;];
$wii $_POST[&#39;wii&#39;];
$steam $_POST[&#39;steam&#39;];

header(&#39;Content-type: image/png&#39;);
$font imageloadfont(&#39;arial.ttf&#39;); #font añadida
$imagen imagecreatefrompng("imagen.png"); //Sirve para cargar un .png
$negro imagecolorallocate($imagen,0,0,0);

imagestring($imagen$font2169substr($nick016), $negro);
imagestring($imagen$font282146substr($nick016), $negro);
imagestring($imagen$font284192substr($nick016), $negro);
imagestring($imagen$font284229substr($nick016), $negro);
imagestring($imagen$font284264substr($nick016), $negro);

imagepng($imagen);
imagedestroy($imagen);
?>


Sugiero que sigas usando imagestring, ademas en las imagenes GD no se pueden poner hipervinculos

Ah vale. Esque en el antiguo código estaba el echo, pero hice uno nuevo y ya está quitado jejeje. Aún así me sigie dando error lo del font y no sé si podría hacer que cada usuario suba su foto y se plasme ahí. Si tenéis alguna idea...

Muchas Gracias y un saludo ;)

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:Imagen con textos predefinidos
« Respuesta #25 en: 05 de Abril de 2010, 16:26:11 pm »
Abre http://farmville.vacau.com/script2.php con el bloc de notas la proxima vez. Lo he abierto y me pone:
gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully

Un saludo!

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #26 en: 05 de Abril de 2010, 16:39:09 pm »
Puedes comprobar tú mismo el resultado con el font en http://farmville.vacau.com/formulario2.html (NO me gusta el farmville, simplemente es un hosting de hace muchísimo tiempo xD). //error: No se puede mostrar la imagen “http://farmville.vacau.com/script2.php” porque contiene errores.
<?php
$nick 
$_POST[&#39;nick&#39;];
$gamertag $_POST[&#39;gamertag&#39;];
$psn $_POST[&#39;psn&#39;];
$wii $_POST[&#39;wii&#39;];
$steam $_POST[&#39;steam&#39;];

header(&#39;Content-type: image/png&#39;);
$font imageloadfont(&#39;arial.ttf&#39;); #font añadida
$imagen imagecreatefrompng("imagen.png"); //Sirve para cargar un .png
$negro imagecolorallocate($imagen,0,0,0);

imagestring($imagen$font2169substr($nick016), $negro);
imagestring($imagen$font282146substr($nick016), $negro);
imagestring($imagen$font284192substr($nick016), $negro);
imagestring($imagen$font284229substr($nick016), $negro);
imagestring($imagen$font284264substr($nick016), $negro);

imagepng($imagen);
imagedestroy($imagen);
?>

Abre http://farmville.vacau.com/script2.php con el bloc de notas la proxima vez. Lo he abierto y me pone:
gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully

Un saludo!

A mí no me aparece nada...

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #27 en: 05 de Abril de 2010, 20:18:53 pm »
Te recomiendo que utilizes la función imagettftext()
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #28 en: 05 de Abril de 2010, 21:46:53 pm »
Te recomiendo que utilizes la función imagettftext()

Perfecto. Ya añadí la función y funciona a la perfección ;)

¿Y ahora por último, hay alguna manera de hacer que el usuario suba una foto y se ponga en el lugar del cuadrado negro?

Muchas gracias y un Saludo ;)


http://farmville.vacau.com/formulario2.html

EDITO: Seguramente dejaré esto, porque no me es útil. Cuando son muy largos los nicks queda mal pero esque si lo muevo y los nicks son cortos... No puedo hacer algo general, entonces seguramente lo dejaré...
« Última modificación: 05 de Abril de 2010, 22:05:05 pm por WildWolf360 »

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Imagen con textos predefinidos
« Respuesta #29 en: 05 de Abril de 2010, 22:09:55 pm »
Para lo de la foto,  puedes hacer que suba la foto y luego con imagecopy() la pones.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>