imagecreatefrompng()를 사용하여 PNG 이미지가 검게 변했습니다.
문제:
사용자에게 다음과 같은 문제가 발생했습니다. GD 라이브러리를 사용하여 썸네일을 생성할 때 PHP의 imagecreatefrompng() 함수가 PNG 이미지의 투명한 영역을 검정색으로 변환하는 문제가 있습니다.
PHP 썸네일 생성 코드:
<code class="php">function cropImage($nw, $nh, $source, $stype, $dest) { // ... switch($stype) { case 'png': $simg = imagecreatefrompng($source); break; // ... } // ... }</code>
해결책:
이 문제를 해결하려면 특히 PNG 및 GIF 이미지의 경우 imagecreatetruecolor() 이전의 추가 단계가 필요합니다. 이러한 단계에는 다음이 포함됩니다.
<code class="php">// Before imagecreatetruecolor() $dimg = imagecreatetruecolor($width_new, $height_new); // png ?: gif // Additional steps for PNG and GIF switch ($stype) { case 'gif': case 'png': // Black color $background = imagecolorallocate($dimg , 0, 0, 0); // Remove black from placeholder imagecolortransparent($dimg, $background); // Turn off alpha blending imagealphablending($dimg, false); // Turn on alpha channel saving imagesavealpha($dimg, true); break; default: break; }</code>
이러한 추가 단계를 구현하면 imagecreatefrompng()를 사용하여 축소판을 생성할 때 PNG 이미지의 투명한 영역이 보존됩니다.
위 내용은 PHP에서 `imagecreatefrompng()`를 사용하면 PNG 이미지가 검게 변하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!