2012-03-26 8 views
4

ich diesen Code verwenden für die Größenänderung:PHP Resize Bild gibt schwarzen Hintergrund

<?php 
// Function for resizing any jpg, gif, or png image files 
function ak_img_resize($target, $newcopy, $w, $h, $ext) { 
    list($w_orig, $h_orig) = getimagesize($target); 
    $scale_ratio = $w_orig/$h_orig; 
    if (($w/$h) > $scale_ratio) { 
      $w = $h * $scale_ratio; 
    } else { 
      $h = $w/$scale_ratio; 
    } 
    $img = ""; 
    $ext = strtolower($ext); 
    if ($ext == "gif"){ 
     $img = imagecreatefromgif($target); 
    } else if($ext =="png"){ 
     $img = imagecreatefrompng($target); 
    } else { 
     $img = imagecreatefromjpeg($target); 
    } 
    $tci = imagecreatetruecolor($w, $h); 
    // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h) 
    imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig); 
    imagejpeg($tci, $newcopy, 80); 
} 
?> 

Aber jedes Mal lade ich ein transparant png Bild, um es mit einem schwarzen Hintergrund stellt sich heraus. Wie verhindere ich dies und behalte den transparenten Hintergrund?

+0

versuchen Sie dies mit JPG-Bild oder sonst weiser png? – chhameed

+0

Diese SO Frage kann http://stackoverflow.com/questions/32243/can-png-image-transparency-be-preserved-when-using-phphs-gdlib-imagecopyresample – Ben

+0

Jpeg kann keinen transparenten Hintergrund haben. http://stackoverflow.com/questions/313070/png-transparency-with-php –

Antwort

4

versuchen, diese vor imagecopyresampled, hinzugefügt Alpha-Blending, und speichern Sie dann alpa

imagealphablending($tci, false); 
imagesavealpha($tci,true); 
$transparent = imagecolorallocatealpha($tci, 255, 255, 255, 127); 
imagefilledrectangle($tci, 0, 0, $w, $h, $transparent); 
0

dies versuchen, für Ihre Größe neu machen Funktion

<?php 
    $file_name =testimg.jpg // your file name 
    extension= explode(".", strtolower($file_name));//get ext of your image 

    if($extension[1]=="jpg" || $extension[1]=="jpeg") 
    { 
     $src = imagecreatefromjpeg($filename); // Check ext and set src 
    } 
    else if($extension[2]=="png") 
    { 
     $src = imagecreatefrompng($filename); // Check ext and set src 
    } 
    else 
    { 
     $src = imagecreatefromgif($filename); // Check ext and set src 
    } 
    list($width,$height)=getimagesize($filename); 
    $newwidth=round($width/10); //resized image width 
    $newheight=round($height/10); //resized image height 
    $tmp=imagecreatetruecolor($newwidth,$newheight); 
    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); 
    $resizedfile = "resizeduploads/". $name; 
    if($extension[1]=="jpg" || $extension[1]=="jpeg") 
    { 
     imagejpeg($tmp,$resizedfile); 
    } 
    else if($extension[1]=="png") 
    { 
     imagepng($tmp,$resizedfile); 
    } 
    else 
    { 
     imagegif($tmp,$resizedfile); 
    } 
    imagedestroy($src); 
    imagedestroy($tmp); 
Verwandte Themen