изображение кадрирования, показывающее черный BG - PullRequest
0 голосов
/ 12 февраля 2010

У меня есть этот код обрезки изображения, когда изображение обрезается, на него добавляется черный фон. как я могу удалить это? спасибо

$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);

1 Ответ

0 голосов
/ 12 февраля 2010

Посмотрите на эти функции:

Вы можете определить цвет как прозрачный с первой функцией (вы должны назначить этот цвет). Залейте новое изображение прозрачным цветом, прежде чем рисовать на нем измененную версию. Это только сделает ваш черный BG невидимым и не обрезает изображение до нужного размера. (Это только предположение, что может вам помочь)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...