현재 위치: > 최신 기사 목록> imagecolorallocatealpha 함수를 사용하여 투명한 이미지의 썸네일을 만드는 방법?

imagecolorallocatealpha 함수를 사용하여 투명한 이미지의 썸네일을 만드는 방법?

M66 2025-07-18

PHP에서는 GD 라이브러리를 사용하여 썸네일 생성을 포함하여 이미지를 처리 할 수 있습니다. imagecolorallocatealpha 기능을 통해 투명한 색상을 투명한 이미지에 할당하는 데 도움이됩니다. 다음 으로이 기능을 사용하여 투명한 이미지에 대한 축소판을 만드는 방법을 단계별로 단계별로 진행할 것입니다.

1. 환경을 준비하십시오

먼저 PHP 환경에서 GD 라이브러리가 활성화되어 있는지 확인하십시오. GD 라이브러리가 활성화되어 있는지 확인할 수 있습니다.

 php -m | grep gd

GD 라이브러리가 설치되지 않은 경우 적절한 명령으로 설치하십시오 (예 : Ubuntu에서 sudo apt-get install php-gd를 사용).

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

투명한 이미지의 썸네일을 만들려면 먼저 원본 이미지를로드해야합니다. 투명한 배경이있는 PNG 또는 GIF 파일을 다루고 있다고 가정하면 imageCreateFrommpng 또는 imageCreateFromGif를 사용하여 이미지를로드 할 수 있습니다.

 $image = imagecreatefrompng('example.png');

이렇게하면 현재 디렉토리에있는 example.png 파일이로드됩니다.

3. 썸네일 캔버스를 만듭니다

축소판을 생성하려면 새로운 이미지 캔버스를 만들고 투명한 배경을 가지고 있는지 확인해야합니다. 투명성을 보장하려면 먼저 올바른 투명 배경을 설정하고 imagecolorallocatealpha를 사용하여 투명한 색상을 할당해야합니다.

 // 원본 이미지의 너비와 높이를 얻으십시오
$width = imagesx($image);
$height = imagesy($image);

// 축소판의 너비와 높이를 설정하십시오
$new_width = 100;
$new_height = 100;

// 새 이미지 캔버스를 만듭니다,투명한 배경으로 설정합니다
$thumb = imagecreatetruecolor($new_width, $new_height);

// 투명한 배경에 색상을 할당합니다
$transparent = imagecolorallocatealpha($thumb, 0, 0, 0, 127);  // 0, 0, 0 검은 색입니다,127 완전한 투명성을 나타냅니다
imagefill($thumb, 0, 0, $transparent);

// 이미지 투명성을 활성화합니다
imagesavealpha($thumb, true);

이 코드에서, imagecolorallocatealpha ($ thumb, 0, 0, 0, 127)는 투명 배경색을 축소판에 할당하는 데 사용되며, 여기서 127은 완전한 투명성을 나타냅니다.

4. 이미지 크기를 조정하여 썸네일 캔버스에 복사하십시오.

다음으로 imageCopyResAmpled 함수를 사용하여 원본 이미지를 새 캔버스로 확장합니다.

 // 원본 이미지를 축소판 캔버스로 스케일링하고 복사하십시오.
imagecopyresampled($thumb, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

5. 썸네일을 저장하십시오

축소판이 생성되면 파일에 저장하거나 브라우저에 직접 출력하도록 선택할 수 있습니다.

 // 썸네일을 파일로 저장하십시오
imagepng($thumb, 'thumb_example.png');

// 또는 브라우저에 직접 출력
header('Content-Type: image/png');
imagepng($thumb);

// 기억을 청소하십시오
imagedestroy($image);
imagedestroy($thumb);

6. 샘플 코드를 완료하십시오

다음은 완전한 코드 예입니다.

 <?php
// 원본 이미지를로드하십시오
$image = imagecreatefrompng('example.png');

// 원본 이미지의 너비와 높이를 얻으십시오
$width = imagesx($image);
$height = imagesy($image);

// 축소판의 너비와 높이를 설정하십시오
$new_width = 100;
$new_height = 100;

// 새 이미지 캔버스를 만듭니다,투명한 배경으로 설정합니다
$thumb = imagecreatetruecolor($new_width, $new_height);

// 투명한 배경에 색상을 할당합니다
$transparent = imagecolorallocatealpha($thumb, 0, 0, 0, 127);  // 0, 0, 0 검은 색입니다,127 완전한 투명성을 나타냅니다
imagefill($thumb, 0, 0, $transparent);

// 이미지 투명성을 활성화합니다
imagesavealpha($thumb, true);

// 원본 이미지를 축소판 캔버스로 스케일링하고 복사하십시오.
imagecopyresampled($thumb, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// 썸네일을 파일로 저장하십시오
imagepng($thumb, 'thumb_example.png');

// 또는 브라우저에 직접 출력
// header('Content-Type: image/png');
// imagepng($thumb);

// 기억을 청소하십시오
imagedestroy($image);
imagedestroy($thumb);
?>