Imagecreatetruecolor ve PNG ile PHP GD sorunlar

1 Cevap php

I) imagecopyresampled GD resim kütüphanesi işlevini kullanarak (PNG görüntüleri yeniden boyutlandırma duyuyorum. Tüm iyi çalışır, ben bile resized görüntüyü oluşturmak için yerine imagecreate kullanarak daha imagecreatetruecolor kullanımı () () ile şeffaflık karıştırma alfa tutabilirsiniz.

Sorun, ben yerine imagecreate daha imagecreatetruecolor () (150KB için 80Kb gibi bir şey PNG dosyaları artar) dosya boyutu kullanırsanız. Ben imagecreate kullanırsanız () dosya boyutu aynı boyutta etrafında kalır, ancak renkler vida!

Yani benim soru dosya boyutunu artırmadan PNG görüntüleri yeniden boyutlandırma nasıl alfa harmanlama tutabilen, nedir?

Oh ve PNG boyutlarını azaltarak ediyorum.

1 Cevap

imagecreate() bir dizin renkli PNG dosyası oluşturma ve imagecreatetruecolor() bir 24-bit renk PNG dosyası oluşturarak konum ile konum ile. Tabii örnekleme kalitesi yeniden örnekleyerek kullanılacak renklerin çok daha büyük menzile sahip bu yana, gerçek renk görüntüsü ile çok daha iyi görünmeye devam ediyor. Ile imagecreate(), sistem sadece daha küçük paletini kullanabilirsiniz.

Sen farklı renk (endeksli ve RGB) modlarında görüntü ölçekleme, Photoshop veya Gimp kullanarak bu deneyebilirsiniz. Ne yazık ki oyunun doğası - dosya boyutu saklamak için daha fazla renk olduğunda daha büyük olacaktır.

Ben bir fark olsaydı emin değilim, ama, daha sonra kopya (ama yeniden örneklemek değil) (imagecreatetruecolor() itibaren) gerçek-renk kaynağına kopyalamak için imagecopyresampled() kullanarak deneyebilirsiniz that bir görüntü bir palet kaynak. Bu şekilde palet resampled sonuca göre belirlenir. Ben olsa, alfa kanalını korumak mümkün olurdu emin değilim.