Jak dotąd wszelkie operacje wykonuję wg schematu:
<code = java>
BufferedImage dana;
int[] rgb=new int[3];
for(int i=0; i<dana.getWidth();i++){
for(int j=0; j<dana.getHeight();j++{
int tmp=dana.getRGB(i,j)&0xffffff; //usuwam alfę
rgb[0]=(tmp>>16)&0xff; //r
rgb[1]=(tmp>>8)&0xff; //g
rgb[2]=tmp&0xff; //b
//jakieś działania(zmiana jasności/kontrast/gamma/konwersje/obroty/odbicia)
tmp=rgb[0]<<16|rgb[1]<<8|rgb[2]|0xff<<24;
dana.setRGB(i,j,tmp);
}
}
Działa to strasznie powoli szczególnie gdy obrazek jest duży(np 3000x3000) a trzeba z nim zrobić coś wymagającego kilku obliczeń.
Czy da się to przyspieszyć nie używając wyspecjalizowanych klas(nie wolno mi)?