Foros del Web » Programando para Internet » PHP »

Problema con GD, pintar imagen

Estas en el tema de Problema con GD, pintar imagen en el foro de PHP en Foros del Web. Hola todos Tengo el siguiente código: Código PHP: <?php header ( "Content-type: image/png" ); $imagen  =  "up.gif" ; $gd  = @ imagecreatefromstring ( fread ( fopen ( ...
  #1 (permalink)  
Antiguo 13/02/2007, 10:26
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
De acuerdo Problema con GD, pintar imagen

Hola todos

Tengo el siguiente código:

Código PHP:
<?php

header
("Content-type: image/png");
$imagen "up.gif";
$gd = @imagecreatefromstring(fread(fopen($imagen"rb"), filesize($imagen)));//Imagen base
$ancho =imagesx($gd);//85
$alto =imagesy($gd);//110
$background_color imagecolorallocate($gd255255255);


//$red = imagecolorallocate($gd, 255, 0, 0);

for($j 0$j<85$j++)
{
  for (
$i 0;$i<110;$i++)
  {
    
$pixelxy imagecolorat($gd$j$i);
    
$rgb imagecolorsforindex($gd$pixelxy);
    
$red imagecolorallocate($gd$rgb["red"],$rgb["green"], $rgb["blue"]);
      
imagesetpixel($gd$j,$i$red);
    }
}

imagepng($gd); 

imagedestroy($gd);
?>
Lo que trato de hacer con esto es generar nuevamente la imagen desde cero, esto lo hago en la seccion de los "for's", pero no hace nada,sale la página en blanco, ¿Tengo algun error? o simplente no es posible lo que quiero hacer?

Espero me puedan orientar

Saludillos.
  #2 (permalink)  
Antiguo 13/02/2007, 12:06
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Re: Problema con GD, pintar imagen

Uhm.. en si que es lo que quieres hacer?
En primer lugar, no seria mas facil crear directamente la imagen con imagecreatefromgif() en lugar de imagecreatefromstring()?
Luego, en ningun lado estas usando las variablñes $ancho, $alto y el color $background_color

Despues, creo que para repintar la imagen necesitarias crear una nueva, pero de eso no estoy seguro.. ahorita voy de salida, pero al regresar hare algunas pruebas.
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 13/02/2007, 12:21
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
Sonrisa Re: Problema con GD, pintar imagen

je te explico

1)imagecreatefromstring lo estoy usando puesto que en un futuro, los usuarios pueden subir cualquier formato de imagen, ahorita estoy haciendo las pruebas con gif.

2)Ignora esas variables porfavor

3)Y lo que estoy tratando de hacer ,es un tanto por curiosidad, pues quisiera saber si es posible crear la imagen desde "cero". Pero no lo he logrado.

Muchas gracias por contestar.
Saludillos.
  #4 (permalink)  
Antiguo 13/02/2007, 12:28
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 9 meses
Puntos: 9
Re: Problema con GD, pintar imagen

No logre entender porque usabas el for y crear la imagen pixel por pixel.. yo utilizo base64 para mostrar o guardar en archivos o en BD las imagenes.. este es solo una muestra de codigo.. y funciona correctamente.. se puede mejorar mucho y usarse con muchos fines.. espero que te sirva..

Código PHP:
$imagen 'images/validated.gif';
$img_binaria img_a_base64($imagen);
imagen_show($img_binaria,'gif');

function 
img_a_base64($img) {
    
$archivo fopen($img'rb');
    
$tamanio filesize($img);
    
$cont fread($archivo$tamanio);
    
fclose($archivo);
    
$output base64_encode($cont);
    return 
$output;
}

function 
imagen_show($bin_img,$mime) {
    
header('Content-type: image/'.$mime);
    
header('Content-length: '.strlen($bin_img));
    echo 
base64_decode($bin_img);

  #5 (permalink)  
Antiguo 13/02/2007, 13:22
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Re: Problema con GD, pintar imagen

Para saber el formato de la imagen puedes usar getimagezise()

Código PHP:
$imgInfo getimagesize($img);
switch (
$imgInfo[2]) {
  case 
1$im imagecreatefromgif($img); break;
  case 
2$im imagecreatefromjpeg($img); break;
  case 
3$im imagecreatefrompng($img); break;
  default: 
trigger_error('Tipo de imagen no reconocido.'E_USER_WARNING); break;

Ahi muestro 3, pero en realidad devuelve mas tipos, cosa de que veas la documentacion..

En teoria, la imagen deberia poder redibujarse, pero no le encuentro mucho sentido.. creo que tomaria tiempop dibujar una imagen grande
__________________
Sin Ideas
  #6 (permalink)  
Antiguo 13/02/2007, 17:50
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
Re: Problema con GD, pintar imagen

Retomando un poco este post

Tengo lo siguiente:

En la siguiente liga pude observar que es posible ir variando los colores http://www.hudzilla.org/phpbook/read.php/11_2_13, pero esto parte de una imagen creada desde cero.

Ahora bien lo adapte para una imagen ya existente:

Código PHP:
<?php

$imagen 
"up.gif";

$width 255;
$height 255;
//$gd = imagecreatetruecolor($width, $height);
$gd imagecreatefromgif($imagen) or die("-");//Imagen base
$ancho =imagesx($gd);//85
$alto =imagesy($gd);//110


for($i 0$i<$ancho$i++)
{
  for (
$j 0;$j<$alto;$j++)
  {
    
$col imagecolorallocate($gd255$i$j);

     
imagesetpixel($gd10$j,$col);
    
// Para que varie en color unicamente en esta linea    
  
}
}
header("Content-type: image/gif");
imagegif($gd); 
imagedestroy($gd);

?>
Esto no me varia para nada la linea, mas sin embargo uso la imagen creada por imagecreatetruecolor, no hay ningun problema. ¿Qué estoy haciendo mal?

Saludillos.
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 21:57.