먼저 PHP 환경에서 GD 라이브러리 지원을 가능하게했는지 확인하십시오. GD 라이브러리는 PHP가 이미지를 처리하기위한 기본 라이브러리이며, 이미지 생성, 자르기, 스케일링, 합성 및 기타 작업에 종종 사용됩니다.
다음 코드를 사용하여 GD 라이브러리가 활성화되어 있는지 확인할 수 있습니다.
<?php
if (extension_loaded('gd')) {
echo "GD라이브러리가 활성화되었습니다";
} else {
echo "GD라이브러리가 활성화되지 않았습니다,설치하거나 활성화하십시오GD라이브러리 확장";
}
?>
GD 라이브러리 기능을 통한 이미지 리소스로드 imageCreatefromjpeg () , imageCreateFrommpng () 등. 여기서 우리는 JPEG를 예로 들어 본다.
<?php
$sourcePath = 'gitbox.net/images/sample.jpg'; // 도메인 이름이 대체되었습니다gitbox.net
$srcImg = imagecreatefromjpeg($sourcePath);
if (!$srcImg) {
die("사진을로드 할 수 없습니다");
}
?>
다음은 ImageGetClip 의 동작을 모방하는 사용자 정의 기능입니다.
<?php
/**
* 이미지를 자르고 스케일링하십시오
*
* @param resource $srcImg 소스 이미지 리소스
* @param int $clipX 자르기 시작점X동등 어구
* @param int $clipY 자르기 시작점Y동등 어구
* @param int $clipWidth 작물 너비
* @param int $clipHeight 자르기 높이
* @param int $newWidth 목표 너비(확대 후)
* @param int $newHeight 대상 높이(확대 후)
*
* @return resource 裁剪확대 후的新图像资源
*/
function imagegetclip($srcImg, $clipX, $clipY, $clipWidth, $clipHeight, $newWidth, $newHeight) {
// 대상 이미지 리소스를 만듭니다
$dstImg = imagecreatetruecolor($newWidth, $newHeight);
// 투명하게 유지하십시오(~에 맞서PNG그리고GIF)
imagealphablending($dstImg, false);
imagesavealpha($dstImg, true);
// 작물과 규모
imagecopyresampled(
$dstImg, // 대상 이미지
$srcImg, // 소스 이미지
0, 0, // 대상 이미지起点동등 어구
$clipX, $clipY,// 소스 이미지자르기 시작점동등 어구
$newWidth, $newHeight, // 대상 이미지尺寸
$clipWidth, $clipHeight // 소스 이미지裁剪尺寸
);
return $dstImg;
}
?>
다음은이 기능을 호출하여 이미지를 자르고 스케일링하고 결과를 저장하는 방법을 보여줍니다.
<?php
// 载入소스 이미지
$sourcePath = 'gitbox.net/images/sample.jpg';
$srcImg = imagecreatefromjpeg($sourcePath);
// 设定裁剪参数그리고缩放尺寸
$clipX = 100;
$clipY = 50;
$clipWidth = 200;
$clipHeight = 150;
$newWidth = 400; // 크게 하다2더블
$newHeight = 300;
// 클리핑 및 스케일링 기능 호출
$dstImg = imagegetclip($srcImg, $clipX, $clipY, $clipWidth, $clipHeight, $newWidth, $newHeight);
// 파일에 출력 이미지
imagejpeg($dstImg, 'gitbox.net/images/output.jpg', 90);
// 리소스를 자유롭게합니다
imagedestroy($srcImg);
imagedestroy($dstImg);
echo "작물과 규모完成,이미지가 저장되었습니다 output.jpg";
?>
위의 단계를 통해 GD 라이브러리를 사용하여 ImageGetClip 함수의 핵심 기능을 구현합니다. 이미지의 지정된 영역을 자르고 대상 크기로 확장하십시오. 이 방법은 JPEG에 적합 할뿐만 아니라 PNG, GIF 및 기타 형식에 대한 지원을 쉽게 확장 할 수 있습니다. 이미지 로딩 기능을 교체하고 기능을 저장하십시오.
자르기와 스케일링을 결합하는이 처리 방법은 아바타 자르기, 썸네일 생성, 이미지 편집 도구 및 기타 시나리오에서 널리 사용됩니다.