Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/04/2014, 07:00
Avatar de HackID1
HackID1
 
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 3 meses
Puntos: 17
Pregunta Respuesta: Escribir sobre una imagen y guardarla modificada en BD

Hola muchas gracias por tu respuesta, mira esa forma la he intentado haciendo uso de un formulario.


El Código Proporcionado por @Alexis88 es el siguiente:

---->

Fácil. Utiliza un pequeño formulario en el que solamente estarán la imagen que se sube y el campo de texto, luego, recibes esa imagen en el mismo archivo o en otro para procesar los datos como se muestra en el enlace que te dejé.


Código HTML:
Ver original
  1. <form action = "procesar.php" method = "post" enctype = "multipart/form-data">
  2.     Imagen: <input type = "file" name = "imagen" />
  3.     Texto: <input type = "text" name = "texto" />
  4.     <input type = "submit" value = "Enviar" />
  5. </form>

Archivo procesar.php

Código PHP:
Ver original
  1. header("Content-type: image/png");
  2. $cadena = $_POST["texto"];
  3. $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  4. $color = imagecolorallocate($im, 220, 210, 60);
  5. $px     = (imagesx($im) - 7.5 * strlen($cadena)) / 2;
  6. imagestring($im, 3, $px, 9, $cadena, $color);
  7. imagepng($im);

Ojo, la imagen con el texto quedan temporalmente, pues como verás, en ninguna parte subo la imagen al servidor, sin embargo, puedes guardarla manualmente como cuando lo haces con una imagen que encuentras en internet y ahí sí queda con el texto impreso.

--> FIN.

Bien .. a este código le he agregado algunos cambios para guardar la imagen como son la posicion DEL TEXTO ESCRITO. sea izquierda derecha o centro, o inferior, con una sentencia If else if ...

Así:
Código PHP:
Ver original
  1. <?php
  2.  
  3. /*Procesar imagen*/
  4.  
  5. header("Content-type: image/png");
  6. $cadena = $_POST["texto"];
  7. $posicion = $_POST["posicion"];
  8. $nombre = $_POST['nombre_img'];
  9.  
  10.     if ($posicion == "izquierda") {
  11.  
  12.         $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  13.         $color = imagecolorallocate($im, 220, 210, 60);
  14.         $px     = (imagesx($im) - 20 * strlen($cadena)) / 2 ;
  15.         imagestring($im, 7, $px, 70, $cadena, $color);
  16.         imagepng($im);      //visualiza en naveg
  17.         imagepng($im, "img/".$nombre.".jpg");   //guarda imagen en img/esenombre.
  18.         imagedestroy($im);
  19.     }
  20.     else if ($posicion == "derecha") {
  21.        
  22.         $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  23.         $color = imagecolorallocate($im, 220, 210, 60);
  24.         $px     = (imagesx($im) + 4 * strlen($cadena)) / 2  ;
  25.         imagestring($im, 7, $px, 70, $cadena, $color);
  26.         imagepng($im);
  27.         imagepng($im, "img/".$nombre.".jpg");
  28.         imagedestroy($im);
  29.     }
  30.     else if ($posicion == "centro") {
  31.        
  32.         $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  33.         $color = imagecolorallocate($im, 220, 210, 60);
  34.         $px     = (imagesx($im) - 7 * strlen($cadena)) / 2  ;
  35.         imagestring($im, 7, $px, 70, $cadena, $color);
  36.         imagepng($im);
  37.         imagepng($im, "img/".$nombre.".jpg");
  38.         imagedestroy($im);
  39.     }
  40.     else {
  41.        
  42.         $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  43.         $color = imagecolorallocate($im, 220, 210, 60);
  44.         $px     = (imagesx($im) - 7 * strlen($cadena)) / 2  ;
  45.         imagestring($im, 7, $px, 220, $cadena, $color);
  46.         imagepng($im);
  47.         imagepng($im, "img/".$nombre.".jpg");
  48.         imagedestroy($im);
  49.     }
  50.  
  51. /* $pos_arriba
  52.     +18 derecha arriba
  53.     -35 izq arriba.
  54.     -7  centro arriba.
  55.    
  56.     $pos_centro
  57.     -7
  58.     120
  59.    
  60.     $pos_inferior
  61.     -7
  62.     220
  63.    
  64.     $px     = (imagesx($im) - $pos_arriba * strlen($cadena)) / 2;
  65.     imagestring($im, 12, $px, 70, $cadena, $color); */
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72. /*original
  73.  
  74. header("Content-type: image/png");
  75. $cadena = $_POST["texto"];
  76.  
  77. $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  78. $color = imagecolorallocate($im, 220, 210, 60);
  79. $px     = (imagesx($im) - 7.5 * strlen($cadena)) / 2;
  80. imagestring($im, 12, $px, 19, $cadena, $color);
  81. imagepng($im);
  82. imagedestroy($im);
  83. */
  84.  
  85. ?>

Pero me gustaría poder guardar esa imagen en la BD. eso como lo hago, para luego en otra página hacer una consulta y mostrar por ejemplo:

Nombre cliente:
Cod trabajo
Imagen
Descripcion
Precio.

Y que en donde ponga imagen se vea la imagen en esa página ya modificada.

Espero puedan ayudarme un poco con esto de escribir encima de una imagen y guardar la imagen en bd, para posteriores consultas.

saludos!!!! Espero ayuda de los expertos en PHP.

NOTA: Si es más fácil en JQuery u otro lenguaje lo agradecería me ayudarán con este problema, llevo ya casi 2 semanas con él.

Saludos a todos!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1