-2
이 코드는 그림의 모든 픽셀을 통과하여 각 그림의 rgb를 변경합니다. 코드를 실행하면 완료하는 데 약 1-2 분이 걸립니다. 나는이 현상이 전체 사진에 대해 590 만 번 반복되는 루프 때문이라고 생각한다. 어떻게 10 초 이상이 과정을 훨씬 빠르게 만들 수 있습니까?코드 처리하는 데 1 분 걸립니다
도움을 주시면 감사하겠습니다. 감사합니다
int r,g,b,colour;
int [] allpixels = new int [picture.getHeight() * picture.getWidth()];
picture.getPixels(allpixels, 0, picture.getWidth(), 0, 0, picture.getWidth(), picture.getHeight());
for(int i = 0; i < allpixels.length; i++)
{
colour = allpixels[i];
r = Color.red(colour);
b = Color.blue(colour);
g = Color.green(colour);
if(r < FIRSTSECTION){
r = FIRST;
}else if(r >= SECONDSECTION && r < THIRDSECTION){
r = SECOND;
}else if(r >= THIRDSECTION && r < FOURTHSECTION){
r = THIRD;
}else if(r >= FOURTHSECTION && r < FIFTHSECTION){
r = FORTH;
}
if(b < FIRSTSECTION){
b = FIRST;
}else if(b >= SECONDSECTION && b < THIRDSECTION){
b = SECOND;
}else if(b >= THIRDSECTION && b < FOURTHSECTION){
b = THIRD;
}else if(b >= FOURTHSECTION && b < FIFTHSECTION){
b = FORTH;
}
if(g < FIRSTSECTION){
g = FIRST;
}else if(g >= SECONDSECTION && g < THIRDSECTION){
g = SECOND;
}else if(g >= THIRDSECTION && g < FOURTHSECTION){
g = THIRD;
}else if(g >= FOURTHSECTION && g < FIFTHSECTION){
g = FORTH;
}
allpixels[i] = Color.argb(1, r, g, b);
}
Bitmap bitmap = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
bitmap.setPixels(allpixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
drawableBitmap = new BitmapDrawable(getResources(), bitmap);