Ben iki PNG dosyalarını, "red.png" ve "blue.png" var; Her ikisi de çok saydam, ama çeşitli yerlerde, kırmızı veya mavi lekeler bir kaç piksel var.
Ben ikisini birleştiren bir PHP komut dosyası yapmak istiyorum; Bu gibi bir şey gibi basit olmalıdır:
$original = getPNG('red.png');
$overlay = getPNG('blue.png');
imagecopymerge($original, $overlay, 0,0, 0,0, imagesx($original), imagesy($original), 100);
header('Content-Type: image/png');
imagepng($original);
Ben bu komut dosyasını çalıştırdığınızda, ben olsun tüm mavi noktalar olduğunu - şeffaflık kaybettik. Ben bu eklemeniz gerektiğini gördüm:
imagealphablending($original, false);
imagesavealpha($original, true);
Ve (orijinal ve bindirme? Hem) herhangi bir yardım için görünmüyor.
Ben ayarlamak için PHP.net, bir şey üzerinde birkaç geçici çözümler gördüm:
$throwAway = imagecreatefrompng($filename);
imagealphablending($throwAway, false);
imagesavealpha($throwAway, true);
$dstImage = imagecreatetruecolor(imagesx($throwAway), imagesy($throwAway));
imagecopyresampled($dstImage, $throwAway,0,0,0,0, imagesx($throwAway), imagesy($throwAway), imagesx($throwAway), imagesy($throwAway));
Hangi bir "gerçek renk" imajına PNG dönüştürmek ve şeffaflığı korumak gerekir. Bunu yapmak gibi görünüyor, ama şimdi görüyorum tüm siyah zemin üzerine mavi.
Ben ne yapmalıyım?