Todo funciona normal y excelente cuando elijo imagenes JPG o GIF. Pero cuando elijo una imagen con formato PNG (tenga o no tenga fondo), el resultado del recorte siempre es una imagen negra, nada mas.
Les dejo la parte del código que hace la nueva imagen, porque estoy casi seguro de que ahí está el error, a la hora de hacer imagepng
Código PHP:
$targ_w = $targ_h = 150;
$jpeg_quality = 90;
$src = (direccion de la foto);
$ext = (extension de la foto);
$_SESSION['Photo']=(nombre de la foto con su extension)
switch ($ext)
{case "gif": // gif -> jpg
$img_r = imagecreatefromgif($src);
break;
case "jpg" || "jpeg": // jpeg -> jpg
$img_r = imagecreatefromjpeg($src);
break;
case "png": // png -> jpg
$img_r = imagecreatefrompng($src);
break;
}
$dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
$targ_w,$targ_h,$_POST['w'],$_POST['h']);
switch ($ext)
{case "gif": // gif -> jpg
imagegif($dst_r,'img/'.$_SESSION['Photo']);
break;
case "jpg" || "jpeg": // jpeg -> jpg
imagejpeg($dst_r,'img/'.$_SESSION['Photo']);
break;
case "png": // png -> jpg
imagepng($dst_r,'img/'.$_SESSION['Photo']);
break;
}