Şeffaf görüntüden görüntü yaratıyor renk mangles

1 Cevap php

I'm building one kind of system, which simply creates dynamic image from other image. I use imagecreatefromstring(file_get_contents("clown_avatar.png")) to create image and output it successfully, but it messes all the colors on the transparent area. Check out the original image:

Click

Ve burada php dosyasından sonucudur:

Click

Lol, ben henüz stackoverflow editörle iyi değilim, ama ben neden bahsettiğini anladım umuyoruz. Birisi lütfen yardımcı olabilir? Ben imagecolorallocate background-color eklemek için çalıştı ama hiç etkisi yoktu.

EDIT: Here's the source, just few rows.

<?php
$im = imagecreatefromstring(file_get_contents("clown_avatar.png"));
//$bg = imagecolorallocate($im,0,0,0); doesn't effect
Header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>

1 Cevap

Bunun nedeni alfa tabakası atarak olmasıdır. Bunu yaparak, görüntünün başka türlü görünmez parçalar artık görünür hale gelir.

Yerine ne yapmak istediğinizi, imagecopymerged kullanarak (yani sadece arka plan rengi) alfa ile orijinal PNG resim yüklemek ve istenilen görüntü üzerine kopyalamak olduğunu.