Eigentlich Edit:
[EDIT]@ Marco
Ich hab mal deine setRGB Methode auskommentiert und das mit dem Image gesetzt wie ich das meinte. An der Stelle sind vorher bei meinem 6MB tiff etwa 130ms vergangen. Jetzt sinds 30ms-60ms und bei jedem vierten Aufruf sinds 140ms (Warum bei jedem vierten Aufruf 140ms?Wenn mir das jemand beantworten kann immer her damit - das ist auch das was ich bei mir meinte, nur da ist es bei jedem zweiten Aufruf der Fall. Hat das was mit dem Garbage Collector zu tun?)
[/EDIT]
[EDIT]Edit die zweite:
Also ihr habt euch ja die ganze Zeit gefragt warum ich da sone komische Berechnung habe. Mir fiel nicht auf, dass ihr einfach Java implizit eure unsigned Werte in signed Werte umrechnen lasst. Das mache ich explizit mit meinen Abfragen. Bei meinen Tests eben fand ich raus, dass meine zusätzlichen Zeilen Code jedoch keinerlei Geschwindigkeitsnachteil bedeuten. Das was Java da implizit macht ist also keinesfalls schneller. Jedoch fange ich das "spratzeln" ab was durch Rundungsfehler an der weiß schwarz Grenze auftritt. Hier zur Demonstration mal ein Bild was ich meine
[/EDIT]
[EDIT]@ Marco
Java:
private BufferedImage createImageFromByteArray(int w, int h, byte input[])
{
int output[] = new int[input.length];
for (int i = 0; i < input.length; i++)
{
byte v = input[i];
int a = 0xFF000000;
int r = (v & 0xFF) << 16;
int g = (v & 0xFF) << 8;
int b = (v & 0xFF) << 0;
output[i] = a | r | g | b;
}
BufferedImage result = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
long t1=System.currentTimeMillis();
Image im= createImage(new MemoryImageSource(w, h,output , 0, w));//0
result.getGraphics().drawImage(im, 0,0,w,h,null);//32-63
//result.setRGB(0,0, w, h, output, 0, w);
System.out.print("create8bitBI "); System.out.println(System.currentTimeMillis()-t1);
return result;
}
[/EDIT]
[EDIT]Edit die zweite:
Also ihr habt euch ja die ganze Zeit gefragt warum ich da sone komische Berechnung habe. Mir fiel nicht auf, dass ihr einfach Java implizit eure unsigned Werte in signed Werte umrechnen lasst. Das mache ich explizit mit meinen Abfragen. Bei meinen Tests eben fand ich raus, dass meine zusätzlichen Zeilen Code jedoch keinerlei Geschwindigkeitsnachteil bedeuten. Das was Java da implizit macht ist also keinesfalls schneller. Jedoch fange ich das "spratzeln" ab was durch Rundungsfehler an der weiß schwarz Grenze auftritt. Hier zur Demonstration mal ein Bild was ich meine
[/EDIT]
Anhänge
Zuletzt bearbeitet: