Черный квадрат внизу на выводе миниатюры - PullRequest
1 голос
/ 03 февраля 2011

У меня есть черная область на моем выводимом уменьшенном изображении 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 Ответ

1 голос
/ 03 февраля 2011

list($height, $width) = getimagesize($src); должно быть list($width, $height) = getimagesize($src);

как сказано в руководстве по getimagesize :

Возвращает массив из 7 элементов:

Индекс 0 и 1 содержит соответственно ширина и высота изображения.

...