Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP imagecrop() 함수로 이미지를 원하는 사각형 영역으로 자르는 방법

imagecrop()는 PHP에 내장된 함수로, 지정한 사각형 영역만큼 이미지를 잘라내는(크롭하는) 데 사용됩니다. 이 함수는 주어진 사각형 영역을 기준으로 이미지를 잘라낸 뒤 결과 이미지를 반환하며, 원본 이미지는 수정되지 않고 그대로 유지됩니다.

문법

resource imagecrop ($image, $rect)

매개변수

imagecrop() 함수는 $image$rect, 두 개의 매개변수를 받습니다.

  • $imageimagecreatetruecolor()와 같은 이미지 생성 함수가 반환한 이미지 리소스입니다. 이 매개변수를 통해 대상 이미지의 크기를 지정합니다.

  • $rect − 잘라낼 사각형 영역을 정의하는 배열로, x, y, width, height 키를 포함해야 합니다.

반환 값

imagecrop()는 성공 시 잘라낸 이미지 리소스를 반환하고, 실패하면 false를 반환합니다.

예제 1

<?php
   // 지정한 이미지 파일로부터 이미지를 생성합니다.
   $img = imagecreatefrompng('C:\xampp\htdocs\Images\img34.png');
   
   // 이미지의 가로와 세로 크기 중 작은 값을 구합니다.
   $size = min(imagesx($img), imagesy($img));
   
   // 잘라낼 이미지의 크기를 설정합니다.
   $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);
?>

실행 결과

imagecrop() 함수 적용 전의 입력 이미지

PHP imagecrop() 함수로 이미지를 원하는 사각형 영역으로 자르는 방법

imagecrop() 함수 적용 후의 출력 이미지

PHP imagecrop() 함수로 이미지를 원하는 사각형 영역으로 자르는 방법

예제 2

<?php
   // 로컬 드라이브 폴더에서 이미지를 불러옵니다.
   $filename = 'C:\xampp\htdocs\Images\img34.png';
   $img = imagecreatefrompng($filename);

   $ini_x_size = getimagesize($filename)[0];
   $ini_y_size = getimagesize($filename)[1];

   // 가로 길이와 세로 길이 중 작은 값을 기준으로 크롭합니다.
   $crop_measure = min($ini_x_size, $ini_y_size);

   // Content-Type 헤더 설정 (필요 시 주석 해제)
   //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);
?>

실행 결과

PHP imagecrop() 함수로 이미지를 원하는 사각형 영역으로 자르는 방법