이미지 처리의 실제 개발에서 자르기는 일반적이고 필요한 작업입니다. 백엔드 개발을위한 중요한 언어 인 PHP는 여러 작물 관련 기능을 제공하며 가장 일반적으로 혼란스러운 두 가지는 ImageGetClip () 및 imageCrop () 입니다. 이 기사는 개발자가 특정 요구에 따라 적절한 이미지 자르기 방법을 선택할 수 있도록이 두 기능의 사용법, 기능적 차이 및 적용 가능한 시나리오를 철저히 비교할 것입니다.
imageCrop () 는 PHP가 제공하는 표준 이미지 자르기 기능이며 PHP 5.5 이후에 소개되었습니다. 기본 목적은 주어진 이미지 리소스를 지정된 직사각형 영역으로 자르는 것입니다.
함수 정의 :
resource imagecrop(resource $image, array $rect)
매개 변수 설명 :
$ 이미지 : 원본 이미지 리소스
$ rect : x , y , 너비 , 높이를 포함하여 자르기 영역을 정의하는 배열
샘플 코드 :
$src = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
$crop = imagecrop($src, ['x' => 100, 'y' => 50, 'width' => 200, 'height' => 100]);
if ($crop !== FALSE) {
imagejpeg($crop, 'cropped.jpg');
}
ImageGetClip ()는 덜 참조하는 함수입니다. 실제로 이미지 컨텐츠를 "자르기"하는 데 사용되는 것이 아니라 현재 이미지 자원의 클리핑 사각형을 얻는 데 사용됩니다. 이 클리핑 영역은 이미지 그리기 작업의 범위를 제한하는 데 사용되며 드로잉 컨텍스트의 일부입니다.
함수 정의 :
array imagegetclip(resource $im)
샘플 코드 :
$im = imagecreatefrompng('https://gitbox.net/images/example.png');
$clip = imagegetclip($im);
print_r($clip);
출력은 다음과 같습니다.
Array
(
[x] => 0
[y] => 0
[width] => 400
[height] => 300
)
이것은 현재 이미지의 도면 제한 영역이 (0,0)-(400,300)임을 나타냅니다.
기능 | imageCrop | ImageGetClip |
---|---|---|
사용 | 실제로 이미지 영역을 자르고 새로운 이미지 리소스를 생성하십시오. | 현재 도면 제한 영역을 얻으십시오 (이미지 컨텐츠 수정 없음) |
이미지 컨텐츠 수정 여부 | 예 | 아니요 |
새 이미지를 생성할지 여부 | 예 | 아니요 |
소개 된 버전 | PHP 5.5 | PHP 5.6 |
실제 운영 사용 | 이미지 썸네일 생성, 사용자 아바타 자르기 등 | 그리기 전의 컨텍스트 설정 (imageClip과 결합) |
많은 개발자들은 ImageGetClip ()가 초보자 일 때 imageCrop () 와 같은 이미지를자를 수 있다고 잘못 생각합니다. 사실, 이것은 잘못된 이해입니다. ImageGetClip ()은 이미지 소재 자원의 도면 제한 영역을 설정하고 얻는 데 사용되는 ImageStclip () 와 더 관련이 있으며 실제 이미지 컨텐츠를 변경하지 않습니다.
요구 사항이 "이미지의 자르기 및 저장"인 경우 망설임없이 imageCrop ()를 사용하십시오. 그래픽 컨텍스트를 작업 중이거나 그래픽 도면 영역을 제어 해야하는 경우 ImageGetClip ()를 사용하는 것이 좋습니다.
일반적으로 imageCrop () 는 이미지의 일부를 처리하고 저장하는 데 사용되는 표준 작물 함수이며 ImageGetClip ()는 이미지 그리기 컨텍스트의 상태 정보를 얻는 데만 사용됩니다. 그들의 사용 차이를 이해하면 개발 프로세스의 혼란과 오류를 피할 수 있으며 PHP의 이미지 처리 기능을보다 효율적으로 사용할 수 있습니다.