PHP GD GIF görüntü kalitesinin kötü

3 Cevap php

Ben üzerinde çalışıyorum bir filigran script var, sonuç çok iyi değil ancak bir gif resim, PNG ve JPG görüntülerde iyi. PHP ve GD kullanıyorum

Eğer filigran kalite farkı görebilirsiniz.

Herkes bu geliştirmek için nasıl biliyor?

Gif sürümü için ben kullanıyorum

$image = imagecreatefromgif($source_file);
imagecopymerge($image, $watermark, $x, $y, 0, 0, $water_width, $water_height, 65);
imagegif($image, $source_file);

gif image = bad quality gif image

jpg image = good jpg image

3 Cevap

GIF görüntüler 256 renk maksimum içerebilir sabit bir palet var. Burada sorun, resim yerleştirme Hedef görüntüde mevcut değildir renkleri kullandığı muhtemelen.

Ben bu denedim hiç, ama denemeye değer olabilir. Sen filigran yapmak, sonra ilk gerçek renk görüntüye gif görüntü dönüştürme denemek ve bundan sonra gif geri dönüştürerek olabilir.

$image = imagecreatefromgif($source_file);
// create a true color image of the same size
$image2 = imagecreatetruecolor(imagesx($image), imagesy($image));
// copy the original gif image on to the true color image
imagecopy($image2, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
// copy the watermark onto the new true color image
imagecopymerge($image2, $watermark, $x, $y, 0, 0, $water_width, $water_height, 65);
// write the new image to disk
imagegif($image2, $source_file);

Deneyin ve bir fark yaparsa bakın.

Yardımcı olabilecek mevcut palet manipülasyon işlevlerinin bir çift de var:

  1. imagecolormatch()
  2. imagetruecolortopalette()
  3. imagepalettecopy()

Ben bunları uygulamak nasıl emin değilim, ama sonuçlarını geliştirmek için yapabileceği birkaç şey var olduğunu tahmin ediyorum.

GIF sadece 256 renk renk paleti destekler. Bu nedenle, filigran görüntü renkleri bu paletle eşlenmesi gerekir. Bu onları daha önce farklı renk ile işlenmiş ve kaydedilecek neden oldu. Bu nedenle küçük paleti, GIF neyse, genel olarak fotoğraflar için tavsiye edilmez.

Renk paleti 256 renk olarak GIF görüntüleri, harika bakmak asla. MrMage dediği gibi, renk eşleme görüntünün gerçek renkleri ciddi bir yaklaşım olur. Sen PNG ile daha iyi, onlar destek şeffaflık yok.