Generador de imágenes PHP: Desmotivación y Cuánta razón

  • Autor Autor WindHack
  • Fecha de inicio Fecha de inicio
WindHack

WindHack

Eta
Redactor
Verificación en dos pasos activada
Verificado por Whatsapp
Hola a todos,

He comenzado con la creación de un script en PHP que genera una imagen del tipo desmotivaciones, Cuánta razón, y sitios similares. Aún no cuenta con interfaz, de hecho, funciona mediante parámetros GET en la URL. Aún es muy sencilla y tiene que modificarse mucho, pero el resultado que ha dado por el momento me agrada bastante...

Si alguien quiere colaborar, ya sea en el diseño de una GUI para facilitar todos estos procesos y hacer más modificable el script (Cambio de fuente, tamaño, color) o en las mejores de código, será bienvenido.

La URL cuenta con tres parámetros:

url = Indica la dirección de la imagen que contendrá... Por ahora va con .PNG (Modificación futura para aceptar de cualquier tipo).
mText = Texto superior, que va en mayúscula.
sText = Texto inferior, que va en minúscula y blanco.


El código es este:
PHP:
<?php
        Header("Content-Type: Image/PNG");
        $oImage = ImageCreateFromPNG($_GET["url"]);
        $iOrigin = GetImageSize($_GET["url"]);
        $Image = ImageCreateTrueColor($iOrigin[0]+60, $iOrigin[1]+130);

        $ColorMayus = ImageColorAllocate($Image,32,124,175);
        $ColorMinus = ImageColorAllocate($Image,255,255,255);
        
        ImageCopy($Image,$oImage, 30, 30, 0, 0, $iOrigin[0], $iOrigin[1]);
  
        $sFont = "FrancoisOne.ttf";
        $mText = StrToUpper($_GET['mText']);
        $sText = $_GET['sText'];
        
        $boxText = ImageTTFbbox(24, 0, $sFont, $mText);
        $cX = (ImagesX($Image) - $boxText[2]) / 2;
        $cY = ($iOrigin[1])+70;
        ImageTTFText($Image, 24, 0, $cX, $cY, $ColorMayus, $sFont, $mText);
        
        $boxText = ImageTTFbbox(14, 0, $sFont, $sText);
        $cX = (ImagesX($Image) - $boxText[2]) / 2;
        $cY = ($iOrigin[1])+100;
        ImageTTFText($Image, 14, 0, $cX, $cY, $ColorMinus, $sFont, $sText);
        
        ImagePNG($Image);

        ImageDestroy($Image);
        ImageDestroy($oImage);
?>

He aquí un ejemplo:
http://daw-labs.com/php_test/index....png&mText=Texto superior&sText=Texto inferior


Críticas y sugerencias son bien recibidas!


Saludos.,
 
No puedes hacer que se "grabe" en formato png?
No se si se pueda, pero para que puedas poner un boton de descarga y no quede esa url tan larga.
 
Sí, claro que se podría. De igual forma, si se desea la imagen, se puede descargar directamente haciendo clic derecho.

Por cierto, también se puede usar directamente en la URL con los tags de imagen...

Insertar CODE, HTML o PHP:
[IMG]http://daw-labs.com/php_test/index.php?url=http://www.maestrosdelweb.com/images/2009/08/crayones_png24.png&mText=Usando tags&sText=Funciona![/.IMG]

index.php
 
Sí, claro que se podría. De igual forma, si se desea la imagen, se puede descargar directamente haciendo clic derecho.

Por cierto, también se puede usar directamente en la URL con los tags de imagen...

Insertar CODE, HTML o PHP:
[IMG]http://daw-labs.com/php_test/index.php?url=http://www.maestrosdelweb.com/images/2009/08/crayones_png24.png&mText=Usando tags&sText=Funciona![/.IMG]

index.php

Eso lo sé, pero hablo para que no quede tan larga la url xd
O podrías hacer que se genere en una base de datos, una serie de numeros la cual cuando pones tuweb.com/numeros te muestre la imagén y puedas usar [*img]tuweb.com/numeros[/img*] y sea lo mismo que poner con los gets
 
Sólo aclaraba, que quizá alguien no lo sepa. Jejeje.

Y sí, es buena idea la que tú me comentas, aunque como aclaré en el post inicial recién lo hice (no más de 40 minutos) y carece de demasiadas cosas. Por eso si alguien se ofrece a ayudar o desea modificarlo a su gusto pues estaré atento.
 
Gracias por tu aporte 😀
 
http://daw-labs.com/php_test/index.php?url=http://static2.agroterra.net/media/catalog/product/cache/3/image/800x800/14344541faa036820e4eafb92b5d9181/4/6/programador-wt1030-gardena-3044175___464N1825_m.jpg&mText=Usando tags&sProbando=Funciona![IMG]

[COLOR="silver"]- - - Actualizado - - -[/COLOR]

No sale :c Pero esta genial eso!
 
pero porque parametrisado con la URL porque no con dos INPUT Text!!
 
Gracias por compartir :encouragement:
 
http://daw-labs.com/php_test/index.php?url=http://static2.agroterra.net/media/catalog/product/cache/3/image/800x800/14344541faa036820e4eafb92b5d9181/4/6/programador-wt1030-gardena-3044175___464N1825_m.jpg&mText=Usando tags&sProbando=Funciona![IMG]

[COLOR="silver"]- - - Actualizado - - -[/COLOR]

No sale :c Pero esta genial eso![/QUOTE]

Se debe a que usaste una imagen JPG, el archivo solicitado es un PNG... Igual puede modificarse para aceptar cualquier formato.


[quote="Canopix, post: 1404937"]pero porque parametrisado con la URL porque no con dos INPUT Text!![/QUOTE]

Porque era un ejemplo, realmente sólo practicaba algo y no me animé a realizar una GUI para el script.
 
Se debe a que usaste una imagen JPG, el archivo solicitado es un PNG... Igual puede modificarse para aceptar cualquier formato.




Porque era un ejemplo, realmente sólo practicaba algo y no me animé a realizar una GUI para el script.

No es dificil realizar la GUI del script!! Es mas HTML5 te sobra para hacerlo, luego combinas funciones con PHP y perfecto!
 
No es dificil realizar la GUI del script!! Es mas HTML5 te sobra para hacerlo, luego combinas funciones con PHP y perfecto!

Efectivamente, en cuanto me quede un tiempo para trabajar en el script realizo una GUI. 😉
 
Atrás
Arriba