본문으로 바로가기

GD 라이브러리 체크

<?php
// GD 라이브러리가 설치되어 있는지 확인
if (!extension_loaded('gd')) {
    // GD 라이브러리가 없는 경우 설치 요청 또는 알맞은 방법으로 GD 라이브러리를 설치해야 합니다.
    die('GD 라이브러리가 설치되어 있지 않습니다.');
}
?>

 

파일 경로 지정

<?php
$imagePath = 'path/to/image.jpg'; // 원본 이미지 파일의 경로
$watermarkPath = 'path/to/watermark.png'; // 워터마크 이미지 파일의 경로
?>

 

이미지 로드

<?php
$image = imagecreatefromjpeg($imagePath); // JPEG 파일인 경우 imagecreatefromjpeg() 함수를 사용
$watermark = imagecreatefrompng($watermarkPath); // PNG 파일인 경우 imagecreatefrompng() 함수를 사용
?>

 

워터마크 크기 조정

?php
$watermarkWidth = imagesx($watermark); // 워터마크 이미지의 너비
$watermarkHeight = imagesy($watermark); // 워터마크 이미지의 높이

// 워터마크의 크기를 조정합니다. 예를 들어, 원본 이미지의 너비의 20%로 조정할 수 있습니다.
$newWidth = imagesx($image) * 0.2; // 원본 이미지의 너비의 20%
$newHeight = $watermarkHeight * ($newWidth / $watermarkWidth);

// 이미지 크기 조정
$resizedWatermark = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($resizedWatermark, $watermark, 0, 0, 0, 0, $newWidth, $newHeight, $watermarkWidth, $watermarkHeight);
?>

 

워터마크 적용

<?php
// 워터마크를 적용할 위치를 설정합니다. 예를 들어, 원본 이미지의 오른쪽 하단에 워터마크를 추가할 수 있습니다.
$marginRight = 10; // 오른쪽 여백
$marginBottom = 10; // 하단 여백

// 워터마크가 적용될 위치 계산
$x = imagesx($image) - $newWidth - $marginRight;
$y = imagesy($image) - $newHeight - $marginBottom;

// 워터마크를 원본 이미지에 추가
imagecopy($image, $resizedWatermark, $x, $y, 0, 0, $newWidth, $newHeight);
?>

 

새로운 이미지 저장

<?php
imagejpeg($image, $imagePath); // 이미지를 JPEG 파일로 저장하려는 경우 imagejpeg() 함수를 사용
imagedestroy($image); // 메모리에서 이미지 객체 해제
imagedestroy($resizedWatermark); // 메모리에서 워터마크 이미지 객체 해제
?>