Mailinglisten-Archive |
Hi Leute! > >Jemand läd ein Logo (gif, jpg o.ä.) per Fileupload auf den Server. > >Das Logo soll nun freigestellt werden, d.h. der Hintergrund soll transparent > >werden. > Hmmm, beim Gif und der GD-Lib kannst du ja die Eckpunkte des Bildes > abklappern und den häufigsten Farbindex dann transparent setzen vor dem > Speichern. > Obacht: > Da das Gif-Fomat nur einen Farbtopf tranparent setzen kann, treten dabei > dann oftmals häßliche Blitzer auf, die nur schwerlich zu vermeiden sind. > Außerdem kann das Abklappern der Eckpunkt scheitern. Und JPeg erlaubt > erst gar keine Transparenz. Ich denke die bescränkunf auf GIF und nur eine Transparente Farbe kann man umgehen indem man einfach - egal ob GIF oder JPG - die Pixelfarben die man für sich als transparent definiert einfach nicht mitkopiert. Das hat natürlich den Nachteil das man das Bild Pixel für Pixel kopieren muss. Aber wenn das nicht oft passiert vielleicht eine Möglichkeit. Das Problem zu bestimmen welche Farben nun transparent gemacht werden sollen ist natürlich weiterhin da. Ich könnte mir auch so etwas vorstellen das man von den Bildkanten ausgehend alle benachbarten Pixel als transparent definiert die den gleichen (evtl. +/- 5%) Farbwert haben. Das würde verhindern das Vorkommen der gleichen Farbe im Bildinnern auch transparent werden. Das alles nur als Denkanstoß. Ein weiteres Problem sehe ich darin das ein Bild das urspünglich mal auf rotem Hintergrund war auf weiss freigestellt ziemlich beknackt aussieht. Durch das Anti-Aliasing der Ursprungsgrafik entstehen hässliche rote Blitzer am Rand. Hope that helps :) Christian
php::bar PHP Wiki - Listenarchive