开发者

image crop showing black bg

i have this image crop code th开发者_如何学Goat when the image does get cropped a black background is added in the picture. how can i remove it? thanks

$fldcategory = $_POST['category'];
$flname = $_FILES['upload']['name'];
$img_src = $_FILES['upload']['tmp_name'];
$thumb = "uploads/" . $flname;
$title = $_POST['title']; 

// Open image
$img = imagecreatefromjpeg($img_src);

// Store image width and height
list($img_width, $img_height) = getimagesize($img_src);

$width = '800';
$height = '600';

// Create the new image
$new_img = imagecreatetruecolor($width, $height);

// Calculate stuff and resize image accordingly
if (($width/$img_width) < ($height/$img_height)) {
    $new_width = $width;
    $new_height = ($width/$img_width) * $img_height;
    $new_x = 0;
    $new_y = ($height - $new_height) / 2;
} else {
    $new_width = ($height/$img_height) * $img_width;
    $new_height = $height;
    $new_x = ($width - $new_width) / 2;
    $new_y = 0;
} 

imagecopyresampled($new_img, $img, $new_x, $new_y, 0, 0, 
  $new_width, $new_height, $img_width, $img_height);

// Save thumbnail
if (is_writeable(dirname($thumb))) {
    imagejpeg($new_img, $thumb, 100);
} 

// Free up resources
imagedestroy($new_img);
imagedestroy($img);


Have a look at these functions:

  • http://ch2.php.net/imagecolortransparent
  • http://ch2.php.net/imagefill

You can define a color as transparent with the first function (you must allocate that color). Fill the new image with the transparent color before you paint the resized version on it. This will only make your black bg invisible and won't crop the image to the right size. (This is only a guess of what could help you)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜