Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Cách cắt hình ảnh theo hình chữ nhật cho trước bằng hàm imagecrop() trong PHP

imagecrop() là hàm tích hợp sẵn trong PHP dùng để cắt hình ảnh theo hình chữ nhật cho trước. Hàm cắt hình ảnh từ vùng hình chữ nhật cho trước và trả về hình ảnh đầu ra. Hình ảnh gốc không bị sửa đổi.

Cú pháp

resource imagecrop($image, $rect)

Tham số

imagecrop() nhận hai tham số: $image và $rect.

  • $image - Tham số trả về bởi hàm tạo hình ảnh như imagecreatetruecolor(). Dùng để tạo kích thước hình ảnh.

  • $rect - Hình chữ nhật cắt là mảng với khóa x, y, width, height.

Giá trị trả về

imagecrop() trả về tài nguyên hình ảnh đã cắt khi thành công, false khi thất bại.

Ví dụ 1

<?php 
// Tạo hình ảnh từ file cho trước
$img = imagecreatefrompng('C:\xampp\htdocs\Images\img34.png');
// Tìm kích thước hình ảnh
$size = min(imagesx($img), imagesy($img));
// Thiết lập kích thước hình ảnh cắt
$img2 = imagecrop($img, ['x' => 0, 'y' => 0, 'width' => 500, 'height' => 320]);
if ($img2 !== FALSE) {
    imagepng($img2, 'C:\xampp\htdocs\pic_cropped.png');
    imagedestroy($img2);
}
imagedestroy($img);
?>

Kết quả

Hình ảnh đầu vào trước khi dùng imagecrop()

Cách cắt hình ảnh theo hình chữ nhật cho trước bằng hàm imagecrop() trong PHP

Hình ảnh đầu ra sau khi dùng imagecrop()

Cách cắt hình ảnh theo hình chữ nhật cho trước bằng hàm imagecrop() trong PHP

Ví dụ 2

<?php 
// Tải hình ảnh từ thư mục cục bộ
$filename = 'C:\xampp\htdocs\Images\img34.png';
$img = imagecreatefrompng($filename);
$ini_x_size = getimagesize($filename)[0];
$ini_y_size = getimagesize($filename)[1];
// Kết cắt theo min chiều rộng/chiều cao
$crop_measure = min($ini_x_size, $ini_y_size);
// header('Content-Type: image/png');
$crop_array = array('x' => 0, 'y' => 0, 'width' => $crop_measure, 'height' => $crop_measure);
$thumb_img = imagecrop($img, $crop_array);
imagejpeg($thumb_img, 'thumb.png', 100);
?>

Kết quả

Cách cắt hình ảnh theo hình chữ nhật cho trước bằng hàm imagecrop() trong PHP