Foros del Web » Programando para Internet » PHP »

Script para tratamiento de imagen problematico

Estas en el tema de Script para tratamiento de imagen problematico en el foro de PHP en Foros del Web. Este es el script que modifiqué desde otros, pero surge el error en la implementación en una página real, error que no aparece cuando se ...
  #1 (permalink)  
Antiguo 10/11/2010, 16:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Script para tratamiento de imagen problematico

Este es el script que modifiqué desde otros, pero surge el error en la implementación en una página real, error que no aparece cuando se prueba el script aisladamente. El problema viene por el header que no sé cómo resolver (Cannot modify header information - headers already sent by....)

Código PHP:
<?php header('Content-type: image/png');
function 
watermark($origen,$marca){
$estampa imagecreatefrompng($marca);
$im imagecreatefromjpeg($origen);
$tam_1=getimagesize($origen);
$tam_2=getimagesize($marca);
$pos_1=($tam_1[0]-$tam_2[0])/2;
$pos_2=($tam_1[1]-$tam_2[1])/2;
$márgen_dcho $pos_1;
$márgen_inf $pos_2;

$sx imagesx($estampa);
$sy imagesy($estampa);
imagecopy($im$estampaimagesx($im) - $sx $márgen_dchoimagesy($im) - $sy $márgen_inf00imagesx($estampa), imagesy($estampa));
imagepng($im);
imagedestroy($im);}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>

<body><img src="imagenes/ABCpdre025634.jpg" width="400" height="266">
<?php watermark("imagenes/ABCpdre025634.jpg","imagenes/ALOVIU.png");?>
</body>
</html>
Alguna idea para que funcione?
  #2 (permalink)  
Antiguo 10/11/2010, 16:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Script para tratamiento de imagen problematico

ACLARACION : el script funciona ok para hacer la marca de agua sobre la imagen. El problema surge en la salida, porque marca el error "Cannot modify header information - headers already sent by...." etc.
No sé cómo implementar el HTML o el PHP para que no haya error.
Gracias!
  #3 (permalink)  
Antiguo 10/11/2010, 19:32
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Script para tratamiento de imagen problematico

Lo pongo más sencillo: sé que debo mantener el head() antes de cualquier salida HTML (o la que fuera). Pero el script debe funcionar dentro de una página con salida HTML. Y ahí se produce el problema.
Si quito el código HTML funciona ok, pero no me sirve de nada, claro.

¿Alguna ayuda?
  #4 (permalink)  
Antiguo 10/11/2010, 19:35
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Script para tratamiento de imagen problematico

Mira, una utilidad que siempre funciona;
Al inicio del codigo pon ob_start(); y al final por ob_end_flush();
Te va a caer como anillo al dedo ;)

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 10/11/2010, 19:44
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Script para tratamiento de imagen problematico

Gracias! ¿A que "inicio" y "final" te referis? ¿Al <?php de la funcion inicial solamente o todo-todo? Porque lo vengo probando y no encuentro cambios...
  #6 (permalink)  
Antiguo 10/11/2010, 19:46
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Script para tratamiento de imagen problematico

prueba lo siguiente.... creo que funciona y es como se utiliza en rutinas de graficas...

el codigo que genera la imagen lo guardas en un php..
por ejemplo imagen.php
Código PHP:
Ver original
  1. <?php header('Content-type: image/png');
  2. function watermark($origen,$marca){
  3. $estampa = imagecreatefrompng($marca);
  4. $im = imagecreatefromjpeg($origen);
  5. $tam_1=getimagesize($origen);
  6. $tam_2=getimagesize($marca);
  7. $pos_1=($tam_1[0]-$tam_2[0])/2;
  8. $pos_2=($tam_1[1]-$tam_2[1])/2;
  9. $márgen_dcho = $pos_1;
  10. $márgen_inf = $pos_2;
  11.  
  12. $sx = imagesx($estampa);
  13. $sy = imagesy($estampa);
  14. imagecopy($im, $estampa, imagesx($im) - $sx - $márgen_dcho, imagesy($im) - $sy - $márgen_inf, 0, 0, imagesx($estampa), imagesy($estampa));
  15. imagepng($im);
  16.  
  17. ?>

luego realizas tu html igual con una variacion en la etiqueta imagen
Código HTML:
Ver original
  1. <img src="imagen .php?y parametros si necesitas" width="400" height="266">

y creo que esto debería funcionar...

Saludos y Suerte
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #7 (permalink)  
Antiguo 10/11/2010, 20:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Script para tratamiento de imagen problematico

Listo. Gracias, igualmente por tu tiempo y atención, Sourcegeek.

Cluster, a lo largo de los siglos, en su legado infinito, me ha dado la solución:

Archivo 1:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<img src="imagenes/ABCpdre025634.jpg" width="400" height="266" /> <img src="PRUEBA_MARCA_AGUA_2.php">
</body>
</html>


Segundo archivo:
PRUEBA_MARCA_AGUA_2.php

<?php
function watermark($origen,$marca){
$estampa = imagecreatefrompng($marca);
$im = imagecreatefromjpeg($origen);
$tam_1=getimagesize($origen);
$tam_2=getimagesize($marca);
$pos_1=($tam_1[0]-$tam_2[0])/2;
$pos_2=($tam_1[1]-$tam_2[1])/2;
$márgen_dcho = $pos_1;
$márgen_inf = $pos_2;
header('Content-type: image/png');
$sx = imagesx($estampa);
$sy = imagesy($estampa);
imagecopy($im, $estampa, imagesx($im) - $sx - $márgen_dcho, imagesy($im) - $sy - $márgen_inf, 0, 0, imagesx($estampa), imagesy($estampa));
imagepng($im);
imagedestroy($im);}
watermark("imagenes/ABCpdre025634.jpg","imagenes/ALOVIU.png");
?>
  #8 (permalink)  
Antiguo 10/11/2010, 20:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 201
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Script para tratamiento de imagen problematico

Gracias, Portalmana. Acabo de ver tu respuesta. Tambien la voy a probar.
  #9 (permalink)  
Antiguo 10/11/2010, 20:06
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Script para tratamiento de imagen problematico

Al inicio seria despues de <?php y al final seria antes de ?>

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: tratamiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:48.