현재 위치: > 최신 기사 목록> ImageGetClip으로 이미지를 자르고 동시에 스케일링을 적용하는 방법

ImageGetClip으로 이미지를 자르고 동시에 스케일링을 적용하는 방법

gitbox 2025-05-26

1. 준비

먼저 PHP 환경에서 GD 라이브러리 지원을 가능하게했는지 확인하십시오. GD 라이브러리는 PHP가 이미지를 처리하기위한 기본 라이브러리이며, 이미지 생성, 자르기, 스케일링, 합성 및 기타 작업에 종종 사용됩니다.

다음 코드를 사용하여 GD 라이브러리가 활성화되어 있는지 확인할 수 있습니다.

 <?php
if (extension_loaded('gd')) {
    echo "GD라이브러리가 활성화되었습니다";
} else {
    echo "GD라이브러리가 활성화되지 않았습니다,설치하거나 활성화하십시오GD라이브러리 확장";
}
?>

2. 원본 이미지를로드하십시오

GD 라이브러리 기능을 통한 이미지 리소스로드 imageCreatefromjpeg () , imageCreateFrommpng () 등. 여기서 우리는 JPEG를 예로 들어 본다.

 <?php
$sourcePath = 'gitbox.net/images/sample.jpg'; // 도메인 이름이 대체되었습니다gitbox.net
$srcImg = imagecreatefromjpeg($sourcePath);
if (!$srcImg) {
    die("사진을로드 할 수 없습니다");
}
?>

3. 자르기 및 스케일링 기능을 구현하십시오

다음은 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;
}
?>

4. 예제를 사용하십시오

다음은이 기능을 호출하여 이미지를 자르고 스케일링하고 결과를 저장하는 방법을 보여줍니다.

 <?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";
?>

5. 요약

위의 단계를 통해 GD 라이브러리를 사용하여 ImageGetClip 함수의 핵심 기능을 구현합니다. 이미지의 지정된 영역을 자르고 대상 크기로 확장하십시오. 이 방법은 JPEG에 적합 할뿐만 아니라 PNG, GIF 및 기타 형식에 대한 지원을 쉽게 확장 할 수 있습니다. 이미지 로딩 기능을 교체하고 기능을 저장하십시오.

자르기와 스케일링을 결합하는이 처리 방법은 아바타 자르기, 썸네일 생성, 이미지 편집 도구 및 기타 시나리오에서 널리 사용됩니다.