PHP bozuk dosyalarda PNGs sonuçları boyutlandırma

0 Cevap php

Ben bir sınırlayıcı kutu için. Jpg,. Gif, ve. Png dosyaları boyutlandırır bir PHP komut dosyası var.

            $max_width = 500;
            $max_height = 600;
            $filetype = $_FILES["file"]["type"];
            $source_pic = "img/" . $idnum;
            if($filetype == "image/jpeg")
            {
                $src = imagecreatefromjpeg($source_pic);                    
            } else if($filetype == "image/png")
            {
                $src = imagecreatefrompng($source_pic);                 
            } else if($filetype == "image/gif")
            {
                $src = imagecreatefromgif($source_pic);
            }
            list($width,$height)=getimagesize($source_pic);
            $x_ratio = $max_width / $width;
            $y_ratio = $max_height / $height;

            if( ($width <= $max_width) && ($height <= $max_height) )
            {
                $tn_width = $width;
                $tn_height = $height;
            } else if (($x_ratio * $height) < $max_height)
            {
                $tn_height = ceil($x_ratio * $height);
                $tn_width = $max_width;
            } else {
                $tn_width = ceil($y_ratio * $width);
                $tn_height = $max_height;
            }

            $tmp = imagecreatetruecolor($tn_width,$tn_height);
            imagecopyresampled($tmp,$src,0,0,0,0,$tn_width, $tn_height,$width,$height);
            $destination_pic = "img/thumbs/" . $idnum . "thumb";
            if($filetype == "image/jpeg")
            {
                imagejpeg($tmp,$destination_pic,80);
            } else if($filetype == "image/png")
            {
                imagepng($tmp,$destination_pic,80);
            } else if($filetype == "image/gif")
            {
                imagegif($tmp,$destination_pic,80);
            }
            imagedestroy($src);
            imagedestroy($tmp);

Komut jpeg ve gif ile çalışıyor ancak bir png dosyası üzerinde çalışırken bozuk olacaktır.

Png çalışırken ben kullanmak için gereken özel bir şey var mı? Ben bu yüzden onunla çok aşina değilim PHP bu tür bir şey ile hiç çalışmamış.

0 Cevap