이미지 처리에 PHP를 사용할 때 GD 라이브러리는 다양한 효과를 달성하기위한 풍부한 기능을 제공합니다. imageTtfText ()를 사용하여 이미지의 TrueType 글꼴로 텍스트를 그릴 수있는 곳, ImageColoralLocatealpha () 는 투명성이있는 색상을 할당 할 수 있습니다. 이 두 기능을 조합하여 사용하면 이미지에 투명한 효과가있는 텍스트를 추가 할 수 있습니다.
이 기사는이 효과를 달성하는 방법을 보여주기 위해 예제를 사용합니다.
먼저 캔버스를 만들어야합니다. 여기서는 imageCreatetRueColor ()를 사용하여 진정한 색상 이미지를 만듭니다.
<?php
// 사진을 만듭니다 400x200 캔버스
$width = 400;
$height = 200;
$image = imagecreatetruecolor($width, $height);
// 배경에 흰색을 할당하십시오
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
imagecolorallocatealpha () 의 네 번째 파라미터는 투명성을 나타내며, 값은 0 (완전히 불투명)에서 127 (완전히 투명)입니다.
// 빨간색을 할당하십시오,50% 투명도(거의 동일합니다 alpha = 63)
$red_alpha = imagecolorallocatealpha($image, 255, 0, 0, 63);
우리는 imagettftext ()를 사용하여 캔버스에 텍스트를 그립니다. TTF 글꼴 파일의 경로를 제공해야합니다.
// 글꼴 파일 경로
$font_path = __DIR__ . '/arial.ttf';
// 캔버스에 텍스트를 작성하십시오
imagettftext(
$image, // 이미지 리소스
30, // 글꼴 크기
0, // 각도
50, // X 동등 어구
100, // Y 동등 어구(기준선 위치)
$red_alpha, // 색상(带투명도)
$font_path, // 글꼴 파일 경로
'Hello, m66.net!' // 쓰기 텍스트
);
투명성으로 PNG 이미지를 출력하려면 투명한 색상을 설정하고 PNG 형식으로 출력해야합니다.
// 열려 있는 alpha 채널 믹싱
imagesavealpha($image, true);
// 출력 헤더를 설정하십시오
header('Content-Type: image/png');
// 출력 사진
imagepng($image);
// 자원을 파괴하십시오
imagedestroy($image);
?>
GD 라이브러리가 서버에 설치되어 있고 Truetype 글꼴에 대한 지원이 php.ini 에서 활성화되어 있는지 확인하십시오.
imagecolorallocatealpha () 의 투명성 값이 127에 가까워 질수록 그 효과가 더 투명합니다.
ImagePng () 출력을 사용하는 경우 투명 채널을 더 잘 보존 할 수 있습니다.