Foros del Web » Programando para Internet » PHP »

Problema de transparencia al subir imagen PNG, GIF a MySQL

Estas en el tema de Problema de transparencia al subir imagen PNG, GIF a MySQL en el foro de PHP en Foros del Web. Alguien sabe como hacer para que un archivo de imagen PNG o GIF no pierda la transparencia al subirlo a mysql?. Al mostrar el archivo ...
  #1 (permalink)  
Antiguo 05/07/2006, 04:07
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema de transparencia al subir imagen PNG, GIF a MySQL

Alguien sabe como hacer para que un archivo de imagen PNG o GIF no pierda la transparencia al subirlo a mysql?. Al mostrar el archivo desde un fichero, la transparencia permanece, pero al extraerlo de la base de datos NO. Puede ser que la esté subiendo mal la imagen o que la esté extrayendo mal, de cualquier modo, me trae de cabeza.

¿Alguna sugerencia o ayuda?

Gracias de Antemano.
SALUDOS
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #2 (permalink)  
Antiguo 05/07/2006, 04:16
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Y yo añado a la pregunta... no es mejor subir el archivo a una ruta fija (renombrando si ya existe otro con dicho nombre) y guardar la ruta en la base de datos en lugar de subirlo a dicha base de datos?

Es q no sé qué ventajas y desventajas tiene el guardar ficheros en bases de datos.
  #3 (permalink)  
Antiguo 05/07/2006, 05:06
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
Hola! gracias por contestar, pues me resulta mas comodo a la hora de hacer backup, tambien al hacer las thumbs y es un sistema que ya tenia implantado desde hace algun tiempo obteniendo buenos resultados, por eso pregunto si hay alguna forma o sistema para aplicar transparencias y no tener que cambiar todo mi sistema solo por eso.

SALUDOS
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #4 (permalink)  
Antiguo 05/07/2006, 05:13
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Quieres comodidad para hacer backup de todo tu sitio? A lo mejor este script te sirve de ayuda. Así hago yo backups, uso un php q me realiza backups de las bases de datos a una carpeta especifica, y luego llamo a esta clase para comprimirlo todo en un zip el cual al final me descargo, jeje.

Compresor ZIP en PHP

Eso sí, siento no poder responderte a tu pregunta pues nunca he metido archivos en las bases de datos. Por eso me interesa saber las ventajas y desventajas ;)

Saludos!!
  #5 (permalink)  
Antiguo 05/07/2006, 06:02
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
Conseguido...
Para quien le pueda servir en imagenes PNG (Portable Network Graphics):

Código PHP:
<?php
$imgPng 
imageCreateFromPng($strImagePath);
imageAlphaBlending($imgPngfalse);
imageSaveAlpha($imgPngtrue);

header("Content-type: image/png");
imagePng($imgPng); 
?>
Gracias dj, por todo y sobre todo por lo del backup q suena muy interesante y a lo que ahora mismo voy a echarle un ojo.

SALUDOS
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #6 (permalink)  
Antiguo 19/07/2006, 10:15
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 14 años, 4 meses
Puntos: 21
Pregunta hola amigos como hago transparencias

hola amigo probablemente ya estes dando la respuesta perdona
mi ignorancia pero como puedo hacer una imagen con fondo transparente

este es mi script

<?php

$width=$_GET['width'];
$height=$_GET['height'];
//$width = 80;
//$height = 80;
$filename=trim($_GET['filename']);//imagen a original
$rfisica=realpath($filename);
//verificamos el tipo de imagen
list($ani, $ali, $tipo, $atr)=getimagesize($filename);

//tipos de archivos que captura la variable $tipo
/*
valor-------tipo de imagen
1 = GIF
2 = JPG
3 = PNG
4 = SWF
5 = PSD
6 = BMP
7 = TIFF(intel byte order)
8 = TIFF(motorola byte order)
9 = JPC
10 = JP2
11 = JPX
12 = JB2
13 = SWC
14 = IFF
15 = WBMP
16 = XBM
*/
//creamos segun sea el tipo de imagen

switch($tipo)
{
case 1://gif
$src_image=imagecreatefromgif($filename);//devuelve un id de la imagen
break;
case 2://jpg
$src_image=imagecreatefromjpeg($filename);//devuelve un id de la imagen
break;
case 3://png
$src_image=imagecreatefrompng($filename);//devuelve un id de la imagen
break;

}

//$crear_imagen=imagecreatefromjpeg(';//devuelve un id de la imagen

//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, 216, 216, 235);//para color de fondo
$bg = imagecolorallocate($image, 255, 255, 255);//para color de fondo
imagefill($image,0,0,$bg); //rellenamos con el color de fondo
$verde = imagecolorallocate($image, 96, 7, 143);//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);
//colocamos el texto sobre la imagen
imagestring($image, 0, $margin_x, ($height-$margin_y), $tipo, $verde);

//encabezado correspondiente para los datos de salida
switch($tipo)
{
case 1://gif
header("Content-type: image/gif");
imagegif($image);
break;
case 2://jpg
header("Content-type: image/jpeg");
imagejpeg($image);
break;
case 3://png
header("Content-type: image/png");
imagepng($image);
break;
}
//header("Content-type: image/jpeg");


//generamos la imagen
//imagejpeg($image);

//liberamos la memoria
imagedestroy($image);
?>
lo que hago es que el thumnail generado le agrego un fondo de color
pero quisiera saber como puedo poner un fondo tranparente

espero me puedas ayudar saludos

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 08:37.