2011-02-02 29 views
1

我在輸出imagecopyresized()縮略圖圖像上有黑色區域。輸出縮略圖底部的黑色方塊

我的代碼:

function thumbImage($src){ 
     /* thumb */ 
    list($height, $width) = getimagesize($src); 

    $rel_difference_thumb = array('width'=>0, 'height'=>0); 
    if($width > 79) { $rel_difference_thumb['width'] = ($width-79)/79; } 
    if($height > 105) { $rel_difference_thumb['height'] = ($height-105)/105; } 

    asort($rel_difference_thumb); 
    $newwidth_thumb = $width/(1+end($rel_difference_thumb)); 
    $newheight_thumb = $height/(1+end($rel_difference_thumb)); 
    $newwidth_thumb = round($newwidth_thumb); 
    $newheight_thumb = round($newheight_thumb); 
    $jpeg_quality_thumb = 90; 
    $thumbloc = 'images/users/privAlbum/thumb/'.$USER . md5(uniqid()) . '.jpg'; 
    switch(exif_imagetype($src)) { 
    case IMAGETYPE_GIF: 
    $img_r_thumb = imagecreatefromgif($src); 
    break; 
    case IMAGETYPE_JPEG: 
    $img_r_thumb = imagecreatefromjpeg($src); 
    break; 
    case IMAGETYPE_PNG: 
    $img_r_thumb = imagecreatefrompng($src); 
    break; 
    default: 
    echo json_encode(array('error' => 'Ingen bild!')); 
    exit(0); 
    break; 
    } 
    $dst_r_thumb = ImageCreateTrueColor($newwidth_thumb, $newheight_thumb); 

    imagecopyresized($dst_r_thumb, $img_r_thumb, 0, 0, 0, 0, $newwidth_thumb , $newheight_thumb, $width, $height); 

    if(imagejpeg($dst_r_thumb,$thumbloc,$jpeg_quality_thumb)) { 
    return true; 
    } 
    imagedestroy($img_r_thumb); 

} 

這究竟是爲什麼?我怎樣才能解決這個問題?

回答

1

list($height, $width) = getimagesize($src);list($width, $height) = getimagesize($src);

爲對manual on getimagesize說:

返回具有7個元素的數組:

索引0和1分別包含 寬度與圖像的高度。