PHP + GD: imagetruecolortopalette şeffaflık tutmak değil

2 Cevap php

Ben çıkış için sadece iyi imagepng kullanarak truecolor + alfa kanalı PNG dosya bir görüntü GD kullanıyorum. Ancak, ben de bir IE6 uyumlu 256-renk PNG çıktı yanı becerisine sahip olmak istiyorum. Imagetruecolortopalette için resmi belgelerine göre:

Kod renk korunması yanı sıra, olası ek olarak, elde edilen palet de mümkün olduğu kadar alfa kanal bilgilerini korumak için modifiye edilmiştir.

Ancak, bu işlevin sonuçları düzgün hiç bir saydamlığı korumak olmadığını bulma yaşıyorum. I this firefox image, bir test olarak bunun üstüne bindirilmiş metin ile kullanılan ve tüm işlev bana bir beyaz arka plan ve garip koyu mavi sınır vermek oldu etmedi. Ben tam alfa kanalını korumak için umut olamaz biliyorum, ama kesinlikle bu işlevi en az şeffaf bir arka planda alacağını. Kaçırdığım bir şey var mı? Ben alabilir herhangi bir alternatif yaklaşımlar var mı?

2 Cevap

Geçenlerde böyle bir şey rastlamak - Ben sadece şeffaflık kullanarak çalışma alabilir:

imagesavealpha($im, true);
imagecolortransparent($im, imagecolorat($im,0,0));

I knew that in all the images, the top left pixel would be the background color. These were called after imagetruecolortopalette and before imagepng.

php-belgelerinde imagesavealpha bir göz atın - ben bu arıyorsun ne olduğunu düşünüyorum.