[Funktion] imagcreatetruecolor

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] imagcreatetruecolor

    Hallo zusammen!

    ich nutze seit geraumer Zeit die Funktion IMAGECREATE. Ich verwende das Format PNG. Nun spielte unser Provider kürzlich ein PHP-Update ein und neue Bilder verloren größtenteils ihre Farbe. Der Fehler war schnell gefunden und ich stellte auf IMAGECREATETRUECOLOR um.

    Das hatte jedoch zur Folge, dass das Speichervolumen der Bilder dreimal so groß ist! Statt ca. 35kb jetzt ca. 110kb!!!

    Wer kann mir einen Ausweg nennen? Gibt es eine geeignete Art der Komprimierung für PNG? Ein Wechsel von PNG zu einem anderen Format ist leider nicht möglich. Die Komprimierung von JPG-Bildern hat sich als großes Gematsche herausgestellt... bzw. produziert zu große Bilder, wenn die Komprimierung zu gering gewählt wird.

    Kann es denn sein, dass ein Software-Update die bisherigen Vorzüge dermaßen vernichtet?!

    Herzlichen Dank für jede Hilfe!
    partizan

  • #2
    ich denk ma das liegt an dem update von gdlib 1.6 auf gdlib2
    warum das so groß ist oder ob man es verkleinern kann, weiß ich leider nicht

    musste ma auf php.net schaun

    mfg

    Kommentar


    • #3
      Original geschrieben von Trashar
      ich denk ma das liegt an dem update von gdlib 1.6 auf gdlib2
      warum das so groß ist oder ob man es verkleinern kann, weiß ich leider nicht

      musste ma auf php.net schaun

      mfg
      Danke für deine Antwort. Ich habe gerade die Lösung gefunden!

      Es liegt an der Kombination von IMAGECREATE bzw IMAGECREATETRUECOLOR und IMAGECOPYRESIZED. Anscheinend benutzte ich bislang die "Lücke", die aufgrund eines Bugs in der GB1.8 bestand. So gelang es Bilder mit IMAGECREATE hochzuladen, die unmittelbar auf eine Palette von 255 Farben "umgebaut" wurden. Laut Doku war das aber gar nicht so gedacht.
      Einem IMAGECREATETRUECOLOR muss man, um den gleichen Effekt zu erzielen nun ein
      imagetruecolortopalette($neubild,false,255);
      zuordnen. Dabei ist $neubild das durch IMAGECOPYRESIZED neu erzeugte Bild(format), die Angabe TRUE bzw. FALSE ermöglicht eine Bildglättung und 255 ist die Anzahl der Palettenfarben. TRUE-Bilder sind ca. 10-15% größer als FALSE-Bilder.

      partizan

      Kommentar


      • #4
        @partizan
        Danke für die fachlich fundierte Auskunft.
        Damit hast Du einigen anderen Usern bestimmt eine Menge Sucharbeit abgenommen und voll im Sinne des Forums geantwortet, was nicht jeder macht.

        Kommentar

        Lädt...
        X