# JavaPNG API



## radiac (23. Nov 2009)

Huhu Leute,


hab diese API im Netz aufgestöbert.... leider gibt es dazu keine dokumentation... zumindest finde ich keine .
Vielleicht hat ja mal jemand mit dieser Api gearbeitet.
Und wenn, bringt die API Verbesserungen mit, wenn es um halbtransparente PNG´s geht???

Greetz Radiac

javapng - Project Hosting on Google Code


----------



## Steev (23. Nov 2009)

Doch, es gibt eine Doku:

Generated Documentation (Untitled)

Gearbeitet habe ich noch nicht mit dieser API, daher kann ich dir auch nicht sagen, ob sie Verbesserungen bei halbtransparenten png´s bringt.

Ich habe aber gesehen, dass das ganze dann letztendlich wieder auf ein BufferedImage hinausläuft. Da die Renderung also standard bleibt, kann ich mir nicht vorstellen, das diese API hinsichtlich der Rendergeschwindigkeit Verbesserungen bringt.

BTW:
Hast du dir schon mal Composites und da insbesondere die Klasse AlphaComposite angesehen?


----------



## radiac (24. Nov 2009)

Hi STeev,


erstmal danke für die Info. Hab das mit der PNG API aufgegeben, wie du schon sagtest läufts am ende aufs gleiche hinaus.

Was meinst du mit Composites? AlphaComposite ?? Ich hab das irgendwo in meinen 7 Büchern mal gelesen . Hab ein spezielles Grafiklehrbuch, kann es da vorgekommen sein? Jedenfalls gearbeitet habe ich damit noch nicht. Was kann das denn tolles? Ich schau direkt mal in meinem Buch nach, ob das da vorkam. Ist aber eher Speziell Java3D das Buch .

Kannst mir ja mal sagen was das ungefähr ist. Werde mich dann wenns sich gut anhört informieren .


Vielen Dank für die Bemühungen 


Greetz Radiac


----------



## radiac (24. Nov 2009)

Update .

Es kam in meinem Grafiklehrbuch vor... ich hab das immer überflogen weil es so aussah, als wolle es ein String in einer bestimmten Farbe immer so angleichen, das es lesbar ist. xD
Wenn man genau liest steht dann dran, das man eine Farbe für das Alpha wählen kann und es mit einer Transparenzstärke anzeigen lassen kann.

Soweit ich das beim überfliegen jetzt geschnallt habe.
Ich werde mal ein paar Beispiele machen und es hier posten ob es verbesserungen gibt. Denn im Beispiel hier wird das wieder mit Paints und so verwirklicht... und genau da liegt ja mein Problem.

Kurze info noch zu meinem Projekt. Mit Gifs komm ich bisher auch gut davon... würde mir dennoch wünschen einen vernünftigen Alpha-Wert zu haben . So hab ich zwar auch einen, aber eben nur voll oder garnicht Transparent. Auch mit Disthering hab ich es mal versucht.
Dithering (ich hoffe das schreibt man so) macht ein Bild mit 1 Farbigen pixel voll. Aber so, das man das Bild noch erkennt. (wie bei einer billig Zeitung). Und wenn man dann die Pixelfarbe auf Transparent setzt, erhält man bei einer Gif einen mittel-transparenz-Wert. Ist aber nur bei hoch Auflösungen brauchbar. Bei mir total nutzlos .

Vielleicht hilft das ja jemanden .


Greetz!


----------



## Steev (25. Nov 2009)

Moin,

ich verwende Alpha-Composites immer dann, wenn ich eine komplette Bitmap, oder Sonstwas halbtransparent darstellen will. Früher hatte ich mir für sowas dann eine BufferedImageOp geschrieben. BufferedImagesOp´s sind aber langsamer als Composites, deshalb verwende ich jetzt Composites.

Kleines Beispiel:

Compositing Graphics (The Java™ Tutorials > 2D Graphics > Advanced Topics in Java2D)

Mit AlphaComposites kann man halt auch noch so Sachen wie Überschneidungen von zwei Grafiken handeln. Wenn du also mal so etwas wie Masken brauchst: Das lässt sich damit realisieren.


----------



## radiac (26. Nov 2009)

Hey Steev,


hab das mal ausgibig gestetet. Also zumindest in meinem Programm hab ich den gleichen Effekt wie bei einer transparenz- PNG.

Ich vermute, das Java ein allgemeines Problem mit halb-transparenten hat. Auch Gifs die ich mit Hilfe von Comp. halbtransparent (25, 50 oder 75 % ) gemacht habe ziehen die perfromance um fast 200 FPS (größenabhängig). Auch egal wie stark man das Bild transparent hat.

Nichts desto trotz hab ich ein Mittelding in Erwägung gezogen. Also benutze jetzt bei kleinen Sachen Compisites . Funktioniert auch so ganz akzeptabel .

Also dein Tipp hat sich trotzdem gelohnt will ich damit sagen. :applaus:

Und wer nicht gerade ein halbtransparentes Riesenhud braucht, ist damit ganz gut beident. .
Wenn jedoch doch jemand die ultimative PNG (Halbtransparentsache gelöst hat)... gerne würden hier denke ich mal einige wissen wie das geht .

Viele Grüße Radiac


----------



## Steev (27. Nov 2009)

radiac hat gesagt.:


> hier denke ich mal einige wissen wie das geht .



...oder ob das überhaupt geht.



> In addition, Java 2D does not currently hardware accelerate translucent images by default on Microsoft Windows, Solaris, and Linux systems.



Graphics Performance Improvements

Das bedeutet, dass dies ein bekanntes, aber noch ungelöstet Problem ist.


----------



## radiac (27. Nov 2009)

Na Prima . Ich wäre für einen Kettenbrief


----------

