Foros del Web » Programando para Internet » PHP »

Problema con el color de fondo de una imagen

Estas en el tema de Problema con el color de fondo de una imagen en el foro de PHP en Foros del Web. TENGO PROBLEMA CON ESTE CODIGO: El codigo que está a continuación hace lo siguiente: En el paso 1 reescala la imagen En el paso 2 ...
  #1 (permalink)  
Antiguo 16/09/2005, 20:27
 
Fecha de Ingreso: abril-2004
Mensajes: 56
Antigüedad: 19 años, 11 meses
Puntos: 0
Pregunta Problema con el color de fondo de una imagen

TENGO PROBLEMA CON ESTE CODIGO:
El codigo que está a continuación hace lo siguiente:

En el paso 1 reescala la imagen
En el paso 2 pega la imagen redimensionada sobre otra que mide 250 x 250
En el paso 3 agrega una marca de agua

Supongamos que la imagen original mide 560px x 960px al redimensionarla queda de 130 x 250 pixeles, en el paso 2 toma esta imagen y la "pega" sobre otra 250 x 250 de fondo blanco (centrandola horizontal y verticalmente).

El problema es que el fondo queda de color azul, con otras fotos el fondo queda de color negro. ¿Porque pasa esto si la imagen "base" tiene el fondo blanco. (yo necesito que el fondo sea blanco).

PD: la imagen del parámetro $base es un gif de 250 x 250 de color blanco.


<?PHP

$base = "base.gif";

PASO 1:
$altura = 250;

$ratio = ($dimensiones[1] / $altura);
$anchura = round($dimensiones[0] / $ratio);
$image = imagecreatetruecolor($anchura,$altura); //crea la nueva imagen
$FFF = imagecolorallocate($image, 255,255,255);
imagefill($image, 0, 0, $FFF);
imagecopyresampled ($image, $img, 0, 0, 0, 0, $anchura, $altura, $dimensiones[0], $dimensiones[1]);//reescala
imagejpeg($image,"$dir$image_name", $c1);

PASO 2:
//Pega el resultado sobre la base
$img = $dir.$image_name;
$im1 = imagecreatefromjpeg($img);
$ancho = imagesx($im1);
$alto = imagesy($im1);

$xpos = (250 - $ancho) / 2;
$ypos = (250 - $alto) / 2;

$im2 = imagecreatefromgif($base);
$im2 = imagecreatetruecolor (250,250);
imagecopy ($im2, $im1,$xpos,$ypos,0, 0,$ancho,$alto);


imagejpeg($im2,"$dir$image_name",95);

PASO 3:
//Crea el watermark
$pos = explode("-",$pos); //posición horizontal y vertical del watermark:
$wmhorz = $pos[0];
$wmvert = $pos[1];

$logo = imagecreatefrompng($watermark);
$margen = 0; //distancia entre el watermark y la orilla
$logoW =imagesx($logo); //Anchura del logo
$logoH =imagesy($logo); //Altura del logo
$anchura = 250;
imagecopy($im2, $logo, 0, 0, 0, 0, 250, 250); //Pone el logo
imagejpeg($im2,"$dir$image_name", 95);


?>

Foto original:


Resultado:


como pueden darse cuenta en el "resultado" el fondo es de color negro siendo que la imagen "$base" es blanca
__________________
Si el mundo es redondo ¿por que le pusieron planeta?
Entonces si hubiese sido plano le hubisen puesto "redondeta"

Última edición por huayayo; 16/09/2005 a las 20:41
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 20:16.