<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 앞쪽 PHP 코드 예제(기사의 내용과 관련이 없습니다.)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"这예하나段与文章无关的앞쪽코드 예제"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># imagefilltoborder 그리고 imagecopymerge 혼합 사용의 실제 사례 분석</span></span><span>
존재하다 PHP 이미지 처리 기능이 있습니다,`imagefilltoborder` 그리고 `imagecopymerge` 이것들은 매우 실용적인 기능입니다。그들은 각각 명확한 기능을 가지고 있습니다,그러나 둘 다 함께 사용될 때,可以实现하나些更加灵活그리고高级的图像处理效果。이 기사는 실제 사례를 사용합니다,이 두 기능의 혼합 사용 방법에 대한 자세한 분석。
</span><span><span class="hljs-comment">## 하나、기능 소개</span></span><span>
</span><span><span class="hljs-number">1</span></span><span>. **imagefilltoborder**
- 기능:지정된 지점에서 색상 채우기로 시작합니다,지정된 테두리 색상이 발생할 때까지。
- 일반적인 시나리오:영역 충전을 구현하십시오、복잡한 모양의 배경 채우기 등。
```php
</span><span><span class="hljs-title function_ invoke__">imagefilltoborder</span></span><span>(</span><span><span class="hljs-variable">$image</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">$border_color</span></span><span>, </span><span><span class="hljs-variable">$fill_color</span></span><span>);
</span></span>매개 변수 설명 :
$ 이미지 : 대상 이미지 리소스.
$ x , $ y : 충전점 좌표를 시작하십시오.
$ BREARTH_COLOR : 경계 색상,이 색상이 발생할 때 채우기를 중지하십시오.
$ fill_color : 채우기 색상.
imagecopymerge
기능 : 한 이미지를 다른 이미지에 병합하고 투명성을 제어하십시오.
일반적으로 사용되는 장면 : 워터 마크 만들기, 사진 오버레이 등
<span><span><span class="hljs-title function_ invoke__">imagecopymerge</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>, </span><span><span class="hljs-variable">$src_image</span></span><span>, </span><span><span class="hljs-variable">$dst_x</span></span><span>, </span><span><span class="hljs-variable">$dst_y</span></span><span>, </span><span><span class="hljs-variable">$src_x</span></span><span>, </span><span><span class="hljs-variable">$src_y</span></span><span>, </span><span><span class="hljs-variable">$src_w</span></span><span>, </span><span><span class="hljs-variable">$src_h</span></span><span>, </span><span><span class="hljs-variable">$pct</span></span><span>);
</span></span>매개 변수 설명 :
$ dst_image : 대상 이미지 리소스.
$ src_image : 소스 이미지 리소스.
$ dst_x , $ dst_y : 대상 이미지의 시작 좌표.
$ src_x , $ src_y : 소스 이미지의 시작 좌표.
$ src_w , $ src_h : 소스 이미지의 너비와 높이.
$ PCT : 병합 투명성의 백분율.
우리가 그림에 채워진 경계를 추가하고 테두리에 반투명 로고를 오버레이하고 싶다고 가정 해 봅시다. 먼저 ImageFillToBorder를 사용하여 테두리를 채운 다음 imageCopyMerge를 사용하여 로고를 추가 할 수 있습니다.
<span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-number">400</span></span><span>;
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-number">300</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-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);
</span><span><span class="hljs-comment">// 색상을 정의하십시오</span></span><span>
</span><span><span class="hljs-variable">$white</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-variable">$black</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">0</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">$red</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">0</span></span><span>, </span><span><span class="hljs-number">0</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">$white</span></span><span>);
</span><span><span class="hljs-comment">// 사용 imagefilltoborder 빨간색 테두리를 만듭니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilltoborder</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-variable">$white</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>);
</span></span> <span><span><span class="hljs-variable">$logo</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'logo.png'</span></span><span>); </span><span><span class="hljs-comment">// 가정 logo 예 PNG 체재</span></span><span>
</span><span><span class="hljs-variable">$logo_width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$logo</span></span><span>);
</span><span><span class="hljs-variable">$logo_height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$logo</span></span><span>);
</span><span><span class="hljs-comment">// 할 것이다 logo 오른쪽 하단에 합병되었습니다,투명도 50%</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopymerge</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$logo</span></span><span>, </span><span><span class="hljs-variable">$width</span></span><span> - </span><span><span class="hljs-variable">$logo_width</span></span><span> - </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span> - </span><span><span class="hljs-variable">$logo_height</span></span><span> - </span><span><span class="hljs-number">10</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">$logo_width</span></span><span>, </span><span><span class="hljs-variable">$logo_height</span></span><span>, </span><span><span class="hljs-number">50</span></span><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-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$logo</span></span><span>);
</span></span>혼합 사용의 장점
ImageFillToBorder는 닫힌 영역의 배경색을 빠르게 채워서 수동으로 그리기 테두리의 복잡성을 줄입니다.
imagecopymerge는 채워진 영역에서 반투명 요소를 겹쳐서 복잡한 층 효과를 달성 할 수 있습니다.
이 둘의 조합은 배경 및 장식 레이어의 유연한 가공을 가능하게하여 시각적 미화를 달성 할 수 있습니다.
주목해야 할 것
테두리 색상이 정확해야합니다. 그렇지 않으면 ImageFillToBorder가 예상 범위를 초과합니다.
imagecopymerge 의 투명성 값은 과도한 어둠이나 색 왜곡을 피하기 위해 배경색 및 전경 맵에 따라 조정해야합니다.
PNG 이미지의 투명한 배경을 처리 할 때 대상 이미지가 알파 채널을 지원하는지 확인해야합니다. 그렇지 않으면 투명성 효과가 손실됩니다.
이 경우 ImageFillToBorder 와 ImageCopymerge 의 조합이 복잡한 이미지 처리 효과를 달성 할 수 있음을 알 수 있습니다. 먼저 ImageFillToBorder 로 영역을 채우고 ImageCopymerge 로 장식 또는 로고를 추가하여 테두리, 워터 마크 또는 오버레이 효과로 빠르게 이미지를 생성 할 수 있습니다. 이 두 기능을 사용하는 기술을 마스터하는 것은 PHP 이미지 처리 개발자에게 매우 실용적인 기술입니다.
<hr> <? php // tail php 코드 예제 (기사의 내용과 관련이 없음) 에코 "이것은 기사와 관련이없는 꼬리 코드 예입니다."; ?> <span></span>