Foros del Web » Programando para Internet » PHP »

thumnails con fondo de color

Estas en el tema de thumnails con fondo de color en el foro de PHP en Foros del Web. hola amigos tengo un problema tengo un script que genera un thumnail de un directorio de imagenes y las presenta para visualizarlas sale todo bien, ...
  #1 (permalink)  
Antiguo 26/04/2006, 13:30
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta thumnails con fondo de color

hola amigos tengo un problema tengo un script que genera un thumnail
de un directorio de imagenes y las presenta para visualizarlas
sale todo bien, el problema es que deseo ponerle un fondo de color al area donde se muestran la imagen individual y no me sale me pone un fondo negro.

Utilizo el imagecolorallocate pero se usa si la imagen fue creada con
imagecreate
y yo utilizo ImageCreateTrueColor y imagecopyresampled para que la imagen
no se distorcione en vez de imagecreate y imagecopyresized

saludos espero sus comentarios
gracias

este es el codigo

<?php
//$width=$_GET['width'];
//$height=$_GET['height'];
$width = 120;
$height = 120;
$filename=$_GET['filename'];//imagen a original

//imagen desde el archivo
$src_image=imagecreatefromjpeg($filename);//devuelve un id de la imagen

//$image = imagecreate($width, $height);
$image=ImageCreateTrueColor($width, $height);//creamos la imagen con color real

//asignamos los colores
$bg = imagecolorallocate($image, 255, 255, 255);//para fondo
$verde = imagecolorallocate($image, 128, 255, 0);//para el color de la letra

$margin_x = 10;//margen x
$margin_y = 10;//margen y

$w=$width-2*$margin_x;//100
$h=$height-2*$margin_y;//100

$src_w=imagesx($src_image);//aqui obtenemos la anchura de la imagen original apartir del id generado
$src_h=imagesy($src_image);//aqui obtenemos la altura de la imagen original apartir del id generado
if(($w > $src_w) && ($h > $src_h))
{
$dst_w = $src_w;
$dst_h = $src_h;
}
else
{
//¿o escalamos la imagen de acuerdo a la dimensión horizontal?
if(($w/$h) < ($src_w/$src_h))
{
$dst_w=$w;
$dst_h=$w*$src_h/$src_w;
}
else//¿o la escalamos de acuerdo a la dimensión vertical?
{
$dst_w=$h*$src_w/$src_h;
$dst_h=$h;
}
}
//imagecopyresized($image, $src_image, ($width-$dst_w)/2, ($height-$dst_h)/2,0, 0, $dst_w, $dst_h, $src_w, $src_h);
imagecopyresampled($image, $src_image, ($width-$dst_w)/2, ($height-$dst_h)/2,0, 0, $dst_w, $dst_h, $src_w, $src_h);
$t=($width-$dst_w)/2;
$a=($height-$dst_h)/2;
//colocamos el texto sobre la imagen
imagestring($image, 0, $margin_x, ($height-$margin_y), $dst_w.'-'.$dst_h, $verde);

//encabezado correspondiente para los datos de salida
header("Content-type: image/jpeg");

//generamos la imagen
imagejpeg($image);

//liberamos la memoria
imagedestroy($image);
?>

http://img251.imageshack.us/my.php?image=thum4fy.jpg
__________________
gerardo
  #2 (permalink)  
Antiguo 26/04/2006, 14:09
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Podrias agregar esto: imagefill($image,0,0,$bg); luego de crear el color de fondo, a pesar de o que diga la documentacion, a mi me funcionó.
  #3 (permalink)  
Antiguo 26/04/2006, 14:40
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
De acuerdo gracias nuevamente claudiovega

Gracias ya salio
como lo deseaba saludos
y gracias
__________________
gerardo
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 15:22.