이미지를 처리 할 때 워터 마크는 저작권을 보호하거나 브랜드 인식을 향상시키는 일반적인 방법입니다. PHP는 ImagestringUp ()가 수직 텍스트를 그리는 함수 인 이미지 처리를위한 많은 기능을 제공하며, 이는 이미지에 수직 워터 마크를 추가하는 데 매우 적합합니다. 오늘날 PHP에서 Imagestringup () 함수를 사용하여 수직 워터 마크를 그리는 방법을 설명합니다.
먼저 ImagestringUp ()가 GD 라이브러리의 일부이기 때문에 PHP 환경이 GD 라이브러리를 지원하는지 확인해야합니다. GD 라이브러리는 PHP에서 일반적으로 사용되는 이미지 처리 라이브러리이며 일반적으로 PHP를 설치할 때 활성화 할 수 있습니다. 다음 코드에 따라 PHP에 GD 라이브러리가 활성화 된지 확인할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'gd_info'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"GD library is enabled!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"GD library is not enabled!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
환경에서 GD 라이브러리를 활성화하지 않으면 php.ini 파일에서 활성화하거나 패키지 관리자를 사용하여 설치해야합니다.
수직 워터 마크를 그리는 기본 프로세스는 다음과 같습니다.
대상 이미지를 생성하거나로드합니다.
워터 마크 텍스트, 글꼴, 색상 등 설정
imagestringup ()을 사용하여 수직 텍스트를 그립니다.
처리 된 이미지를 출력하거나 저장합니다.
다음은 ImagestringUp ()을 사용하여 이미지에 수직 워터 마크 텍스트를 추가하는 방법을 보여주는 완전한 PHP 코드 예제입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 배경 이미지를 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">800</span></span><span>, </span><span><span class="hljs-number">600</span></span><span>);
</span><span><span class="hljs-comment">// 배경색을 선택하십시오</span></span><span>
</span><span><span class="hljs-variable">$bg_color</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>); </span><span><span class="hljs-comment">// 흰색 배경</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$bg_color</span></span><span>);
</span><span><span class="hljs-comment">// 글꼴 파일로드</span></span><span>
</span><span><span class="hljs-variable">$font</span></span><span> = </span><span><span class="hljs-string">'./path/to/your/font.ttf'</span></span><span>; </span><span><span class="hljs-comment">// 글꼴 파일 경로가 올바른지 확인하십시오</span></span><span>
</span><span><span class="hljs-comment">// 워터 마크 텍스트 내용을 설정하십시오</span></span><span>
</span><span><span class="hljs-variable">$watermark_text</span></span><span> = </span><span><span class="hljs-string">'Your Watermark'</span></span><span>;
</span><span><span class="hljs-comment">// 글꼴 크기를 설정하십시오</span></span><span>
</span><span><span class="hljs-variable">$font_size</span></span><span> = </span><span><span class="hljs-number">20</span></span><span>;
</span><span><span class="hljs-comment">// 워터 마크 텍스트 색상(회색)</span></span><span>
</span><span><span class="hljs-variable">$watermark_color</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-comment">// 워터 마크 텍스트의 너비와 높이를 계산하십시오</span></span><span>
</span><span><span class="hljs-variable">$bbox</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagettfbbox</span></span><span>(</span><span><span class="hljs-variable">$font_size</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$font</span></span><span>, </span><span><span class="hljs-variable">$watermark_text</span></span><span>);
</span><span><span class="hljs-variable">$watermark_width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">2</span></span><span>] - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]);
</span><span><span class="hljs-variable">$watermark_height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">5</span></span><span>] - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">3</span></span><span>]);
</span><span><span class="hljs-comment">// 수직 워터 마크 텍스트를 그립니다</span></span><span>
</span><span><span class="hljs-variable">$x</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// 워터 마크 텍스트를 설정하십시오X동등 어구</span></span><span>
</span><span><span class="hljs-variable">$y</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>; </span><span><span class="hljs-comment">// 워터 마크 텍스트를 설정하십시오Y동등 어구</span></span><span>
</span><span><span class="hljs-comment">// 사용imagestringup수직 텍스트를 그립니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagestringup</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$watermark_text</span></span><span>, </span><span><span class="hljs-variable">$watermark_color</span></span><span>);
</span><span><span class="hljs-comment">// 출력 이미지</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// 무료 메모리</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
이미지 만들기 :
imageCreatetRueColor ()를 사용하여 800x600의 빈 캔버스를 만듭니다. 필요에 따라 캔버스의 크기를 조정할 수 있습니다.
그런 다음 imageColorAllocate () 로 흰색 배경을 만들고 캔버스를 채 웁니다.
글꼴로드 :
이 예에서는 TrueType Font ( .ttf 파일)를 사용했으며 글꼴 파일에 대한 경로를 제공해야합니다. 글꼴로가는 경로는 상대적이거나 절대 경로 일 수 있습니다.
워터 마크 텍스트 설정 :
imagestringup () 을 통해 수직 텍스트를 그립니다. 이 기능의 매개 변수에는 이미지 리소스, 글꼴 크기, X 및 Y 좌표, 텍스트 내용 및 텍스트 색상이 포함됩니다.
워터 마크 텍스트의 너비와 높이를 계산하십시오.
이미지에 워터 마크를 정렬하기 위해 워터 마크 텍스트의 너비와 높이를 계산했습니다. imagettfbbox ()는 경계 상자가 포함 된 배열을 반환하고 텍스트의 크기를 계산합니다.
워터 마크 그리기 :
마지막으로, ImagestringUp ()을 사용하여 텍스트 색상 회색으로 지정된 위치에 세로 텍스트를 그립니다.
출력 이미지 :
ImagePng ()를 사용하여 이미지를 출력하십시오. 이 기능은 이미지를 PNG 형식의 브라우저에 출력합니다. imageJpeg () 또는 imageGif () 와 같은 필요에 따라 다른 형식을 출력 할 수 있습니다.
무료 메모리 :
ImageStroy ()를 사용하여 메모리 누출을 피하기 위해 이미지 리소스를 확보하십시오.
글꼴 선택 : Windows 시스템에서 시스템과 함께 제공되는 글꼴은 일반적으로 .ttf 형식이며 Linux에서는 글꼴 파일의 경로가 다를 수 있습니다. 글꼴 경로가 올바른지 확인하십시오. 그렇지 않으면 글꼴이로드되지 않습니다.
워터 마크 위치 : x 와 y 의 좌표를 조정하여 워터 마크의 위치를 조정할 수 있습니다. 더 많은 컨트롤이 필요한 경우 텍스트를 그리기 전에 이미지 크기를 계산할 수 있으며 워터 마크 위치를 동적으로 조정할 수 있습니다.
성능 최적화 : 이미지가 크면 이미지 처리가 더 많은 리소스를 소비합니다. 많은 수의 이미지를 자주 처리 해야하는 경우 캐시 또는 비동기 처리를 고려하십시오.
imagestringup () 는 PHP GD 라이브러리에서 매우 실용적인 기능으로 수직 텍스트 워터 마크를 그릴 때 특별히 사용됩니다. 이 튜토리얼에서는 이미지 생성에서 출력까지의 전체 단계를 포함하여 수직 워터 마크를 만드는 방법을 자세히 설명합니다. 이 자습서를 통해 PHP에서 수직 텍스트 워터 마크 효과를 쉽게 달성하고 프로젝트에서 유연하게 사용할 수있는 방법을 배울 수 있기를 바랍니다.