현재 위치: > 최신 기사 목록> ImageCreatetRuecolor 및 ImageAlphableding을 통해 이미지의 반투명 효과를 달성하는 방법은 무엇입니까?

ImageCreatetRuecolor 및 ImageAlphableding을 통해 이미지의 반투명 효과를 달성하는 방법은 무엇입니까?

gitbox 2025-09-11
<span><span><span class="hljs-meta">&lt;?php</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-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># 통과하는 방법 imagecreatetruecolor 그리고 imagealphablending 이미지의 반투명 효과를 구현합니다?</span></span><span>

존재하다 PHP 이미지 처리 라이브러리 GD 가운데,`</span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>()` 그리고 `</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>()` 종종 함께 사용되는 두 가지 기능입니다。它们能够帮助开发者존재하다生成图像时实现半透明效果,이것은 이미지 중첩을 더 자연스럽게 만듭니다。本文将介绍它们的基本原理그리고实际应用。

</span><span><span class="hljs-comment">## 1. imagecreatetruecolor 의 역할</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>()` 진정한 색상 이미지 리소스를 만드는 데 사용됩니다。그리고 `</span><span><span class="hljs-title function_ invoke__">imagecreate</span></span><span>()` 다른,它支持更多的颜色深度그리고更高的质量。호출 방법은 다음과 같습니다:

```php
</span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);
</span></span>

이로 인해 200 × 200 캔버스가 생성되어 후속 드로잉 작업을 수행합니다.

2. 상상할 수있는 역할

ImageAlphableending () 함수는 믹싱 모드를 설정하는 데 사용됩니다. 블렌딩 모드가 활성화되면 이미지 나 색상을 그리시 새로운 픽셀이 기존 픽셀과 혼합되어 반투명 효과가 발생합니다.

예를 들어:

 <span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span></span>

true 로 설정되면 색상 오버레이는 직접 덮어 쓰기보다는 투명도로 혼합됩니다.

3. ImagesAvealpha와 함께 사용하십시오

투명한 효과로 PNG를 생성 할 때는 투명 채널을 올바르게 저장할 수 있도록 ImagesAvealpha ()를 사용해야합니다.

 <span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span></span>

이런 식으로 PNG 파일을 저장할 때 투명 부분이 적용됩니다.

4. 실제 예

다음은 반투명 사각형을 생성하는 완전한 예입니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 캔버스를 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);

</span><span><span class="hljs-comment">// 开启混合模式그리고保存透明通道</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-comment">// 투명한 배경을 할당합니다</span></span><span>
</span><span><span class="hljs-variable">$transparent</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocatealpha</span></span><span>(</span><span><span class="hljs-variable">$img</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-number">127</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$img</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">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-variable">$transparent</span></span><span>);

</span><span><span class="hljs-comment">// 반투명 빨강을 배포하십시오</span></span><span>
</span><span><span class="hljs-variable">$red</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocatealpha</span></span><span>(</span><span><span class="hljs-variable">$img</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-number">75</span></span><span>);

</span><span><span class="hljs-comment">// 직사각형을 그립니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>);

</span><span><span class="hljs-comment">// 산출 PNG</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">$img</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

위의 코드를 실행 한 후 브라우저에는 투명한 배경과 중앙에 반투명 한 빨간색 사각형이있는 PNG 이미지가 표시됩니다.

5. 요약

ImageEcreateTruecolor ()imageAlphableending ()ImagesAvealpha () 와 결합 된 고품질 캔버스를 만들어 개발자는 이미지의 반투명 효과를 쉽게 달성 할 수 있습니다. 이 기술은 워터 마크, 특수 효과 이미지 또는 UI 요소를 생성 할 때 특히 유용합니다. 이 두 기능의 조합을 마스터하면 PHP의 이미지 처리가보다 유연하고 강력해질 수 있습니다.