현재 위치: > 최신 기사 목록> PHP 이미지 처리 자습서 : GD 라이브러리 및 Imagemagick 실용 기술 분석

PHP 이미지 처리 자습서 : GD 라이브러리 및 Imagemagick 실용 기술 분석

M66 2025-07-10

PHP에서 이미지 데이터 유형을 처리하고 조작하는 방법

이미지 처리는 웹 개발에서 매우 일반적인 요구 사항입니다. 검증 코드를 생성, 자르기 및 스케일링 이미지를 생성하든 이미지를 형식으로 변환하든 이미지 데이터 유형의 작동과 비교할 수 없습니다. PHP 환경에서 이러한 작업은 주로 GD 라이브러리 및 Imagemagick 라이브러리를 통해 달성 될 수 있습니다.

GD 라이브러리 사용

GD 라이브러리는 PHP의 내장 이미지 처리 라이브러리로, 이미지 데이터를 처리하고 조작하는 풍부한 기능을 제공합니다. 다음은 몇 가지 일반적인 작업 예입니다.

빈 이미지를 만듭니다

 $width = 400;  // 그림의 너비
$height = 200; // 그림의 높이

$image = imagecreatetruecolor($width, $height);  // 빈 이미지를 만듭니다

$backgroundColor = imagecolorallocate($image, 255, 255, 255);  // 배경색을 흰색으로 설정합니다
imagefill($image, 0, 0, $backgroundColor);  // 배경색을 채우십시오

header('Content-type: image/png');  // 설정HTTP헤더 출력이 있습니다PNG형식 사진
imagepng($image);  // 출력 사진
imagedestroy($image);  // 이미지 자원을 파괴하십시오

사진로드 및 저장

 $sourceFile = 'source.jpg';  // 소스 이미지 파일 이름
$destinationFile = 'destination.png';  // 대상 이미지 파일 이름

$sourceImage = imagecreatefromjpeg($sourceFile);  // 소스 이미지로드
$imageWidth = imagesx($sourceImage);  // 이미지 너비를 얻으십시오
$imageHeight = imagesy($sourceImage);  // 이미지 높이를 얻으십시오

$destinationImage = imagecreatetruecolor($imageWidth, $imageHeight);  // 대상 이미지를 만듭니다


header('Content-type: image/png');  // 설정HTTP헤더 출력이 있습니다PNG형식 사진
imagepng($destinationImage, $destinationFile);  // 대상 이미지를 저장하십시오
imagedestroy($sourceImage);  // 소스 이미지 리소스를 파괴하십시오
imagedestroy($destinationImage);  // 대상 이미지 리소스를 파괴하십시오

자르기 및 축소 이미지

 $sourceFile = 'source.jpg';  // 소스 이미지 파일 이름
$destinationFile = 'destination.jpg';  // 대상 이미지 파일 이름
$destinationWidth = 300;  // 대상 이미지 너비
$destinationHeight = 200;  // 대상 이미지 높이

$sourceImage = imagecreatefromjpeg($sourceFile);  // 소스 이미지로드
$sourceWidth = imagesx($sourceImage);  // 소스 이미지 너비를 얻으십시오
$sourceHeight = imagesy($sourceImage);  // 소스 이미지 높이를 얻으십시오

$destinationImage = imagecreatetruecolor($destinationWidth, $destinationHeight);  // 대상 이미지를 만듭니다

imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $destinationWidth, $destinationHeight, $sourceWidth, $sourceHeight);  // 소스 이미지를 대상 이미지로 확대하십시오

header('Content-type: image/jpeg');  // 설정HTTP헤더 출력이 있습니다JPEG형식 사진
imagejpeg($destinationImage, $destinationFile);  // 대상 이미지를 저장하십시오
imagedestroy($sourceImage);  // 소스 이미지 리소스를 파괴하십시오
imagedestroy($destinationImage);  // 대상 이미지 리소스를 파괴하십시오

Imagemagick 라이브러리 사용

GD 라이브러리 외에도 PHP는 이미지 처리에 imagemagick 라이브러리를 사용할 수도 있습니다. Imagemagick은 이미지에서 복잡한 작업에 더 강력하고 적합합니다. 다음은 간단한 예입니다.

 $sourceFile = 'source.jpg';  // 소스 이미지 파일 이름
$destinationFile = 'destination.jpg';  // 대상 이미지 파일 이름
$destinationWidth = 300;  // 대상 이미지 너비
$destinationHeight = 200;  // 대상 이미지 높이

$imagick = new Imagick($sourceFile);  // 소스 이미지로드
$sourceWidth = $imagick->getImageWidth();  // 소스 이미지 너비를 얻으십시오
$sourceHeight = $imagick->getImageHeight();  // 소스 이미지 높이를 얻으십시오

$imagick->cropThumbnailImage($destinationWidth, $destinationHeight);  // 소스 이미지를 대상 크기로 확장하십시오
$imagick->writeImage($destinationFile);  // 대상 이미지를 저장하십시오
$imagick->destroy();  // 이미지 자원을 파괴하십시오

위의 예는 PHP에서 GD 라이브러리 및 Imagemagick 라이브러리를 사용하여 이미지를 유연하게 처리하는 방법을 보여줍니다. 새로운 이미지를 만들거나로드 및 저장, 자르기 및 스케일링에 관계없이 두 라이브러리는 다른 요구를 충족시킬 수 있습니다. 프로젝트의 실제 상황에 따라 개발에 적합한 라이브러리를 선택하십시오.