| |||
Código para meter texto en imagen Hola. Tengo la librería GD 3.4 (más o menos), con lo cuál se supone que no tengo que tener problema para poder meter texto en una imagen y hacer algunas cuantas "perrerías" más con las imágenes. Pues todo son problemas... Con todos los códigos que he probado (unos cuantos ya) no he conseguido nada, y en el que más cerca he estado ha sido con la clase class.upload_0.31, pero tanto en esta como en las demás siempre tengo el típico (o para mí ya es típico) error de header. ¿Qué puedo hacer? ¿Hay por ahí algún código minimalista que pueda hacer exactamente lo que quiero, que es poder guardar como imagen un texto que escribo encima? Gracias por vuestras aportaciones. |
| ||||
Respuesta: Código para meter texto en imagen escribir sobre una imagen no debería darte problemas, sigue estos pasos: 1.- Lo primero que debes definir es si quieres mostrar la imagen o necesitas guardarla, si quieres que el usuario la pueda descargar entonces debes guardarla. 2.- no necesitas ninguna libreria o clase especial, simplemente con GD o GD2, ademas también es buena idea que hagas en tu servidor web una carpeta de fuentes que puedes nombrar por ejemplo "fuentes" donde guardes las fuentes que quieras usar (Verdana, Arial, etc) 3.- Para comenzar creas la imágen dependiendo del formato:
Código PHP:
Ver original 4.- Creas un color para escribir:
Código PHP:
Ver original 5.- Escribes en la imagen con el color y fuente elegida, dependiendo del tipo de fuente:
Código PHP:
Ver original para ambos casos los parametros son los mismos
Código PHP:
Ver original 6.- luego puedes guardarla o mostrarla (o ambos XD), tambien dependiendo del formato
Código PHP:
Ver original Se justificaría el uso de librerías especiales si fuese para hacer efectos complicados, pero si es solo para escribir un simple texto, usa lo básico de PHP :)
__________________ El objetivo de este foro es orientar al usuario como un favor y no como una obligación. Yo soy de los que dan puntos por aporte :D |
| |||
Respuesta: Código para meter texto en imagen Perdón que utilice el mismo post para preguntar algo... Veo que aquí, para dar karma, se utiliza php (al parecer, o esa impresión me da a mí). Siempre he tenido el problema que, para hacer este tipo de encuestas, con el php siempre se me refrescaba la página, y no conseguía que tuviera un funcionamiento fino. Probé algo que me dijeron en este mismo foro, pero no funcionó. ¿Es mucho preguntar qué sistema se utiliza aquí para votar y que no refresque la página? |
| |||
Respuesta: Código para meter texto en imagen Puedo poner texto en imagen y guardarlo todo como imagen, pero hay algo que no me sale... Quiero que, en un campo de texto que he puesto para que cualquiera pueda poner su texto, asociarlo a la variable string del script GD... Dicho de otra manera: Quiero que cualquiera pueda insertar su texto en una imagen que sube cada uno (Lo de que cada uno suba su imagen en principio no me acarrea problema). Y también decir que tengo un form perfectamente creado con su principio y su final. También tengo todas las variables (excepto las del GD) asociadas a una base de datos (quizá una solución sea crear un campo string en DB, pero no creo). Entonces no se me ha ocurrido otra cosa que hacer esto:
Código PHP:
Ver original Me da error en la línea 4 (como no...), pero he probado hacerlo al revés (meterlo en un array que tengo más abajo sustituyendo el [titulo] por [$string] y tampoco ha funcionado. ¿Qué puedo hacer en este caso? Última edición por konvulsion; 24/06/2011 a las 10:24 Razón: mejorar explicación |
| ||||
Respuesta: Código para meter texto en imagen A ver, lo que pones en la linea 4 no es texto normal... ¡es HTML! ¿Que pretende colocando HTML como texto en una imagen? Eso si no tiene nada de sentido... Para recibir una variable desde un formulario, primero necesitas el formulario. Te invito a leer lo siguiente: http://www.php.net/variables.external
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| ||||
Respuesta: Código para meter texto en imagen stramin, que bueno que le hayas hecho el trabajo pero ahora mismo me pregunto si habrá entendido. Seguro vuelve y te agradece, lo cual no está mal, pero bueno... esperemos a ver que nos dice.
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| ||||
Respuesta: Código para meter texto en imagen yo comprendo que en este foro siguen eso que dice: "Da de comer pescado a alguien y le quitarás el hambre por un dia, enseñale a pescar y le quitarás el hambre para siempre" yo enseño a pescar mostrando como hacerlo y corrigiendo si hace algo mal o podría hacerse mejor, ustedes prefieren solo pasarle un libro (url) y dejan que se las arregle solo, que si bien es útil, también podrían buscar el libro por ellos mismos (google). si bien es cierto ambas sirven, yo prefiero ir orientando y respondiendo, lo considero mi responsabilidad y cuido cada uno de mis temas mientras el usuario se vea interesado. Los usuarios vienen aquí buscando ayuda, si les vamos a dar lo mismo que google, que sentido tiene el foro? deberíamos evitar respuestas como: Cita: y responder más como:Lo estás haciendo mal, lee la wiki del foro o el manual de php Cita: creo que eso es "brindar soporte", fíjate que yo le dije como hacerlo y el desarrolló su propio código lo mejor que pudo, cometió algunos errores y se los corregí, el ahora puede aprender de esos errores, viendo las diferencias :) Lo estás haciendo mal, deberías hacerlo de esta manera
__________________ El objetivo de este foro es orientar al usuario como un favor y no como una obligación. Yo soy de los que dan puntos por aporte :D |
| |||
Respuesta: Código para meter texto en imagen Bueno, responderé a pateketrueke brevemente: 1- Miro Google y Yahoo, ya que en Yahoo se encuentran ciertas páginas que Google considera piratas (En alusión a un comentario de stramin). 2- Tendría que haber una videocámara grabando a cada uno las 24 horas del día para que se sepa realmente si alguien mueve un dedo para hacer algo o no. Tengo varios manuales de PHP (entre ellos la Biblia del PHP), de Javascript, de AJAX (no lo utilizo pero me lo bajé). He mirado cientos y cientos de videotutoriales y leídos cientos de foros también (no, no exajero, hablo desde que me dio por querer aprender a principios de año). Hay gente que cree que no tengo ni vida social. Muy listo no soy, hago lo que puedo. He llegado a estar una semana para conseguir algo concreto, pero al no conseguirlo siempre me he puesto a preguntar. ¿Mal hecho? Pues depende... Lo que está claro es que llega un momento que uno se emborracha de información y que ya no sabe por dónde tirar. Entiendo muy bien lo que ha puesto stramin: Se entra al formulario cuando no sucede lo que pone más arriba. A mí también se me hubiera podido haber ocurrido, pero me falta práctica con los "elses" y, en definitiva, para dar a entender al php lo que quiero hacer. Y sí, después de decirme que no puede haber html dentro de php me he dado cuenta enseguida, pero eso es más fácil verlo alguien que entra a un foro y ve un código "totalmente nuevo", a alguien que ha hecho 30 (por decir un número) pruebas antes y ninguna ha dado el resultado esperado. Quizá me falte clarividencia, pero paciencia tengo mucha, puede que inteligencia no tanta, pero eso no es motivo para no seguir avanzando. Y ahora probaré el script de stramin, entendiendo bien lo que ha hecho (cogiendo la variable string por GET, agrupando una función con el resto, y sacando el formulario si no se cumple la función, o sea, si no se ve la imagen). Por cierto... Te he dicho que el formulario empieza y termina antes y después del código que he colgado. Para que me entiendas: En la línea del input type he cogido el script GD php y se lo he puesto de manera conveniente (que ahora ya sé que no es la manera que conviene, pero ya digo que hago lo que puedo). Iba a poner todo el código, pero no quiero mostrar mucho lo que quiero hacer, porque estoy haciendo una web, no es simplemente probar por probar. P.D.: Puede que sea una impresión mía, pero cuando me dio por trastear con Linux parece que la gente se ayude más, aunque también tengo que decir que nunca me he metido en el kernel. |
| |||
Respuesta: Código para meter texto en imagen Me funciona perfectamente, lo que si lo meto en un script largo que tengo me da algunos errores, pero sí, es lo que quería. Supongo que tendré que utilizar más includes para evitar errores de header. |
| |||
Respuesta: Código para meter texto en imagen
Código PHP:
Ver original Esto es lo que hago para que el texto me quede centrado... Lo malo es que no me acaba de funcionar con el GET (que al final le he puesto POST porque terminaré pasándolo por post). Sí que me funciona si lo hago de esta manera, pero sin enviar por URL:
Código PHP:
Ver original He intentado adaptarlo lo mejor que he podido, pero no hay manera. ¿Acaso ahora tengo que aplicar la función de diferente manera? |
| ||||
Respuesta: Código para meter texto en imagen vaya, sinceramente me impresiona que hayas llegado tan lejos, entendiste bien el concepto de las cajas de texto para centrar. bueno, el problema que tienes seguramente es por las tildes, resulta que el sistema GD no usa html para los textos, por lo que debes cambiar la codificación del texto, para esto en el manual de php alguien publicó una conveniente funcion llamada foxy que cambia el formato a utf-8. la función no la he podido encontrar pero tengo una que copié hace tiempo y no recuerdo si la he modificado pero funciona: FOXY UTF8 TO NCE Código PHP: se usa así: foxy_utf8_to_nce("título"); ve si eso soluciona el problema :)
__________________ El objetivo de este foro es orientar al usuario como un favor y no como una obligación. Yo soy de los que dan puntos por aporte :D |
| |||
Respuesta: Código para meter texto en imagen Stramin, me ha funcionado el script, pero es sólo para evitar caracteres extraños... y yo en eso no tengo problema. Ahora lo alucinante es que hace 2 o 3 días que tengo un código que me centra el texto... pero dependiendo del número de letras. O sea, de horizontal me lo centra a la perfección, pero de vertical se coloca el string donde quiere. Quizá la clave está en el strlen ese, que creo que coloca el string en la pantalla dependiendo de la largada del string, pero he intentado ponerlo de varias maneras y eso es un festival de errores. El código es este:
Código PHP:
Ver original Ya me estoy liando con querer que suban una imagen aparte de la que se crea con php, pero no consigo que no me dé error. Sí que veo la que pongo directamente en el código, pero se trata de visualizar lo que saque el input (Pero bueno, estoy investigando, a ver qué consigo... Lo de centrar mejor lo dejo para lo último). Ni caso de los echos, eso me servía a mí al principio. |
| ||||
Respuesta: Código para meter texto en imagen ten en cuenta que solo estás tomando el punto inferior derecho, si pones mas de una linea no sabrás cuando tiene de altura solo tomando ese punto, intenta restar los inferiores tambien: $xCentrado = (imagesx($im) - $cajaTexto[2] - $cajaTexto[0]) / 2; $yCentrado = (imagesy($im) - $cajaTexto[3] - $cajaTexto[5]) / 2; $xCentrado2 = (imagesx($im) - $cajaTexto2[2] - $cajaTexto[0]) / 2; $yCentrado2 = (imagesy($im) - $cajaTexto2[3] - $cajaTexto[5]) / 2; no se si funciona, voy a probar XD por cierto estás creando un png a partir de un jpg: $im = imagecreatefromPng("dibujos/ejemplo2.jpg"); debería ser $im = imagecreatefromjpeg("dibujos/ejemplo2.jpg"); ------------------------edit---------------------- ya, probé y si funciona, claro que como ambos textos estan centrados aparece uno sobre otro, lo otro es que la posicion y empieza desde la base de la letra (abajo), así que en vez de restar habría que sumar: $xCentrado = (imagesx($im) - $cajaTexto[2] - $cajaTexto[0]) / 2; $yCentrado = (imagesy($im) + $cajaTexto[3] - $cajaTexto[5]) / 2; $xCentrado2 = (imagesx($im) - $cajaTexto2[2] - $cajaTexto2[0]) / 2; $yCentrado2 = (imagesy($im) + $cajaTexto2[3] - $cajaTexto2[5]) / 2;
__________________ El objetivo de este foro es orientar al usuario como un favor y no como una obligación. Yo soy de los que dan puntos por aporte :D Última edición por stramin; 28/06/2011 a las 14:36 |
| |||
Respuesta: Código para meter texto en imagen Uff, Dios santo... No lo hubiera adivinado nunca, pensaba que no hacían falta más cajas de texto. Vale, perfecto, sólo había que subir un dígito y ya está todo bien. Última edición por konvulsion; 29/06/2011 a las 19:56 |
| |||
Respuesta: Código para meter texto en imagen A ver, intento hacer esto: Archivo my_file.php:
Código PHP:
Ver original Archivo image_upload_script.php:
Código PHP:
Ver original Archivo ak_php_img_lib_1.0.php:
Código PHP:
Ver original Se supone que es exactamente lo que quiero, insertar un dibujo que se me visualiza junto con una marca de agua (no hay strings, pero supongo que no costaría nada ponerlos). El problema es que no consigo que se me suba bien el dibujo sin un maldito mensaje de error, y eso que hay un video explicativo y todo aparte que he visto, pero yo veo que está todo igual. No quiero hacerme pesado, si tengo que ofrecer dinero lo ofrezco, 20 o 30 euros, pero es que llega un momento que ya no sé qué sustituir por qué, si sustituyo el uploads por mi directorio de destino da los mismos errores. Necesitaré alguien que me explique las cosas como los niños pequeños (y pensar que he sido capaz de entender cómo se hace un blog multinivel con bases de datos relacionadas y todo, pero es que con la movida esta del GD no puedo). http://www.youtube.com/watch?v=PFSkPzJNAho (Este es el video, por si veis algo raro que no está en los script) Última edición por konvulsion; 01/07/2011 a las 05:53 |
| |||
Respuesta: Código para meter texto en imagen Bueno, a ver, me sale lo del watermark, yo lo que quiero hacer es un watermark que me sirva de marco para la imagen, y parece que lo he conseguido. La imagen "de atrás" se visualiza a través de la parte transparente, en principio ningún problema. Ahora bien, resulta que yo quiero que el marco se expanda a lo largo (de arriba a abajo) dependiendo del tamaño del "dibujo standard". He mirado la documentación http://php.net/manual/es/book.image.php y parece que no es algo que se pueda hacer con puro código GD. ¿Entonces qué puedo hacer? http://phpcastellano.com/function.imagecopyresampled.html Por aquí voy bien, ¿¿verdad?? Última edición por konvulsion; 08/07/2011 a las 14:44 |
Etiquetas: |