G
Gast
Gast
Ich habe einige pngs die ich in bufferedimages lade und dann zeichne. Wenn ich das so mache
braucht mein code 200 ms zum Zeichnen (viel zu lange).
Jetzt hab ich schon im internet und forum herumgestöbert und meine code adaptiert;
Das hat mein rendern auf 100 ms heruntergebracht, braucht aber immer noch sehr lange. Mit diesem code schaut das final gezeichnete Bild nach wie vor korrekt aus.
Jetzt hab ich mich mal mit der Transparenz der pngs beschäftigt, und habe statt BufferedImage.TYPE_INT_ARGB_PRE, BufferedImage.TYPE_INT_ARGB verwendet. Jetzt dauert das rendern nur mehr 5 ms. Damit kann ich dann sehr gut leben.
Mein Problem ist nur das die grafik jetzt nicht richtig ausschaut. Ich kann nicht genau sagen was falsch ist, aber es fehlt irgendwie eine gewisse 'Schärfe' des Gesamtbildes. Da ich leider die javadoc zu TYPE_INT_ARGB_PRE nicht ganz verstehe (was genau bedeutet 'premultiplied with alpha'?) weis ich nicht was ich machen soll. Grundsätzlich möchte ich natürlich beim dem Verfahren bleiben das schneller ist, nur schaut es halt nicht so gut aus. Gibt es eine Möglichkeit das ich die pngs irgendwie ändere (Transparenz muss ich aber haben) damit das rendern schneller geht. (Die pngs zeichnet mir ein freund, ich hab da nicht so viel damit am hut)
Code:
imagelist[62] = ImageIO.read(getClass().getResource("/resource/image_selected_4.png")); //$NON-NLS-1$
braucht mein code 200 ms zum Zeichnen (viel zu lange).
Jetzt hab ich schon im internet und forum herumgestöbert und meine code adaptiert;
Code:
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice d = e.getDefaultScreenDevice();
GraphicsConfiguration c = d.getDefaultConfiguration();
newimglist[i] = c.createCompatibleImage(
imagelist[i].getWidth(), imagelist[i].getHeight(), BufferedImage.TYPE_INT_ARGB_PRE);
newimglist[i].getGraphics().drawImage(imagelist[i],0,0, null);
Das hat mein rendern auf 100 ms heruntergebracht, braucht aber immer noch sehr lange. Mit diesem code schaut das final gezeichnete Bild nach wie vor korrekt aus.
Jetzt hab ich mich mal mit der Transparenz der pngs beschäftigt, und habe statt BufferedImage.TYPE_INT_ARGB_PRE, BufferedImage.TYPE_INT_ARGB verwendet. Jetzt dauert das rendern nur mehr 5 ms. Damit kann ich dann sehr gut leben.
Mein Problem ist nur das die grafik jetzt nicht richtig ausschaut. Ich kann nicht genau sagen was falsch ist, aber es fehlt irgendwie eine gewisse 'Schärfe' des Gesamtbildes. Da ich leider die javadoc zu TYPE_INT_ARGB_PRE nicht ganz verstehe (was genau bedeutet 'premultiplied with alpha'?) weis ich nicht was ich machen soll. Grundsätzlich möchte ich natürlich beim dem Verfahren bleiben das schneller ist, nur schaut es halt nicht so gut aus. Gibt es eine Möglichkeit das ich die pngs irgendwie ändere (Transparenz muss ich aber haben) damit das rendern schneller geht. (Die pngs zeichnet mir ein freund, ich hab da nicht so viel damit am hut)