Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2008, 03:44
urameshix
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 7 meses
Puntos: 1
Redimensionamiento png transparente

Hola a todos,

Tengo dos problemas que creo que no son muy dificiles de solucionar pero no doy con la solución. Uso la libreria gd para tratar mis imagenes.

En primer lugar parte de mi script lo que tiene que hacer es redimensionar un png.

Código PHP:
$watermark "ruta_al archivo";
$im imagecreatefrompng($watermark);
        
// DATOS PARA REDIMENSIONAR
$watermark_width_original intval(imagesx($im));
$watermark_height_original intval(imagesy($im));
$watermark_width intval(imagesx($im2)*0.42);
$constante imagesx($im) / $watermark_width;
$watermark_height intval(imagesy($im)/$constante);
        
$im_water imagecreatetruecolor($watermark_width,$watermark_height);
        
imagecopyresampled($im_water,$im,0,0,0,0,$watermark_width,$watermark_height,$watermark_width_original,$watermark_height_original);

imagepng($im_water,'ruta_de_salida',9); 
Esto me lo hace bien, pero el png cuando lo cargo desde archivo es transparente y aquí me lo saca en negro, como hago para mantener la transparencia? Leí cosas sobre imagecolortransparent() y probé mucho, pero no me resultó, asi que a ver si hay alguien que me diga como usarlo.

En segundo lugar, como puedo hacer que el archivo resultado de ese redimensionamiento, pueda usarlo para meter marca de agua sin tener que sacarlo a un archivo, probe con imagenpng($im_water); a secas y luego probé de pasar $im_water al imagecopy para que haga la marca de agua pero no funciona.

Llevo horas mirando esto, se que debe ser una tontería pero no lo encuentro. Un poquito de ayuda me vendría bien.

Gracias por vuestro tiempo, un saludo.