Foros del Web » Programando para Internet » PHP »

subir imagen PNG con php(problema, fondo negro)

Estas en el tema de subir imagen PNG con php(problema, fondo negro) en el foro de PHP en Foros del Web. Pues lo dicho, estoy intentando subir una imagen png, con fondo transparente pero al subir la foto, me pone un fundo transparente, alguna solucion? este ...
  #1 (permalink)  
Antiguo 11/06/2012, 06:58
 
Fecha de Ingreso: abril-2012
Mensajes: 27
Antigüedad: 12 años
Puntos: 2
subir imagen PNG con php(problema, fondo negro)

Pues lo dicho, estoy intentando subir una imagen png, con fondo transparente pero al subir la foto, me pone un fundo transparente, alguna solucion? este es el codigo:

Código PHP:
$nombre_directorio="../iconos_sociales/";
$idunicotime();
$nombreDocumento=$idunico."-".$_FILES['foto']['name'];
move_uploaded_file($_FILES["foto"] ["tmp_name"],$nombre_directorio.$nombreDocumento);                                                                

$fuente=imagecreatefrompng($nombre_directorio.$nombreDocumento);
 
$anchoOrigen=imagesx($fuente);
 
$altoDest=imagesy($fuente);
 
$ancho40;
 
$alto=($ancho/$anchoOrigen)*$altoDest;
 
$imagen=imagecreatetruecolor($ancho$alto); 
 
imagecopyresampled($imagen,$fuente,0,0,0,0,$ancho,$alto,$anchoOrigen,$altoDest);

 
imageJpeg($imagen,"../iconos_sociales/$nombreDocumento",100); 
se que esta mal pero no se como arreglarlo, alguien me ayuda?
  #2 (permalink)  
Antiguo 11/06/2012, 07:29
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: subir imagen PNG con php(problema, fondo negro)

Cita:
Iniciado por oween Ver Mensaje
estoy intentando subir una imagen png, con fondo transparente pero al subir la foto, me pone un fundo transparente
:|


Tu problema es este:

Código PHP:
Ver original
  1. imageJpeg($imagen,"../iconos_sociales/$nombreDocumento",100);

Estás comprimiendo la imagen como jpeg... ¿acaso no querías png con transparencia?

http://php.net/manual/es/function.imagepng.php
http://www.php.net/manual/es/functio...esavealpha.php
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 11/06/2012, 07:31
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: subir imagen PNG con php(problema, fondo negro)

A veces las imagenes en PNG guardan cierta informacion, el color transparente muchas veces es un color determinado.
Porque no probas asignando color de fondo a tu imagen por ejemplo blanco RGB=(255,255,255).
Algo asi seria:

Código PHP:
Ver original
  1. $nombre_directorio  = "../iconos_sociales/";
  2.  $idunico           = time();
  3.  $nombreDocumento   = $idunico."-".$_FILES['foto']['name'];
  4.  move_uploaded_file($_FILES["foto"] ["tmp_name"],$nombre_directorio.$nombreDocumento);                                                                
  5.  
  6.  $fuente            =   imagecreatefrompng($nombre_directorio.$nombreDocumento);
  7.  $anchoOrigen       =   imagesx($fuente);
  8.  $altoDest          =   imagesy($fuente);
  9.  $ancho             =   40;
  10.  $alto              =   ($ancho/$anchoOrigen)*$altoDest;
  11.  $imagen            =   imagecreatetruecolor($ancho, $alto);
  12.  
  13.  $color             =   imagecolorallocate ($fuente,255,255,255);  
  14.  imagefill($fuente, 0, 0, $color))  
  15.  
  16.  imagecopyresampled($imagen,$fuente,0,0,0,0,$ancho,$alto,$anchoOrigen,$altoDest);
  17.  imageJpeg($imagen,"../iconos_sociales/$nombreDocumento",100);

Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #4 (permalink)  
Antiguo 11/06/2012, 08:31
 
Fecha de Ingreso: abril-2012
Mensajes: 27
Antigüedad: 12 años
Puntos: 2
Respuesta: subir imagen PNG con php(problema, fondo negro)

Cita:
Iniciado por elgoncho99 Ver Mensaje
A veces las imagenes en PNG guardan cierta informacion, el color transparente muchas veces es un color determinado.
Porque no probas asignando color de fondo a tu imagen por ejemplo blanco RGB=(255,255,255).
Algo asi seria:

Código PHP:
Ver original
  1. $nombre_directorio  = "../iconos_sociales/";
  2.  $idunico           = time();
  3.  $nombreDocumento   = $idunico."-".$_FILES['foto']['name'];
  4.  move_uploaded_file($_FILES["foto"] ["tmp_name"],$nombre_directorio.$nombreDocumento);                                                                
  5.  
  6.  $fuente            =   imagecreatefrompng($nombre_directorio.$nombreDocumento);
  7.  $anchoOrigen       =   imagesx($fuente);
  8.  $altoDest          =   imagesy($fuente);
  9.  $ancho             =   40;
  10.  $alto              =   ($ancho/$anchoOrigen)*$altoDest;
  11.  $imagen            =   imagecreatetruecolor($ancho, $alto);
  12.  
  13.  $color             =   imagecolorallocate ($fuente,255,255,255);  
  14.  imagefill($fuente, 0, 0, $color))  
  15.  
  16.  imagecopyresampled($imagen,$fuente,0,0,0,0,$ancho,$alto,$anchoOrigen,$altoDest);
  17.  imageJpeg($imagen,"../iconos_sociales/$nombreDocumento",100);

Espero sirva, saludos.
mmmmmm , lo crea la mitad del fondo tranparente, y con un borde negro, madremia que follones tienen las imagenes con formato PNG.

Alguien me ayuda?
  #5 (permalink)  
Antiguo 11/06/2012, 09:13
 
Fecha de Ingreso: abril-2012
Mensajes: 27
Antigüedad: 12 años
Puntos: 2
Respuesta: subir imagen PNG con php(problema, fondo negro)

he retocado un poco el codigo, ahora me la crea con el fondo transparente pero no la redimensiona, aver si alguno me logra de terminar el codigo:

$nombre_directorio="../iconos_sociales/";
$idunico= time();
$nombreDocumento=$idunico."-".$_FILES['foto']['name'];
move_uploaded_file($_FILES["foto"]["tmp_name"],$nombre_directorio.$nombreDocumento);

$fuente = imagecreatefrompng($nombre_directorio.$nombreDocum ento);
$anchoOrigen=imagesx($fuente);
$altoDest=imagesy($fuente);
$ancho= 40;
$alto=($ancho/$anchoOrigen)*$altoDest;
$imagen=imagecreatetruecolor($ancho, $alto);
imagesavealpha($imagen, true);
$color = imagecolorallocatealpha($imagen,0x00,0x00,0x00,127 );
imagefill($imagen, 0, 0, $color);
imagepng($imagen, "file.png");

Etiquetas: png
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:14.