повышение скорости getpixel () и setpixel () на Android Bitmap

Все,

После того, как я заметил, насколько медленными getPixel и setPixel (не уверен, какой из них, думаю, оба не имеют турбонаддува), я быстро закодировал контейнер для Растровое изображение , использующее массив int [] для обработки операций с растровыми изображениями.

Уже - заметно быстрее, но этого недостаточно. Не могли бы вы посоветовать, как это ускорить дальше?

Моя идея состоит в том, чтобы отслеживать, что делается «грязным» функциями setPixel , и обновлять только эту часть Bitmap , когда getBitmap () является называется ... не понятно, как установить параметры setPixels (что-то со смещением и шагом, я думаю).

Также - какой рецепт быстрее?

Заранее спасибо за помощь!

import android.graphics.Bitmap;

public class DrawableBitmapContainer {
private Bitmap image;
private int width, height;
private int[]  pixels;
public DrawableBitmapContainer(Bitmap _source ){
    image = _source;
    width = image.getWidth();
    height = image.getHeight();
    pixels = new int[width*height];
    image.getPixels(pixels,0,width,0,0,width,height);
}
public int getPixel(int x,int y){
    return pixels[x+y*width];
}
public void setPixel(int x,int y, int color){
    pixels[x+y*width]=color;
}
public Bitmap getBimap(){
    image.setPixels(pixels,0,width,0,0,width,height);
    return image;
}
public int getWidth(){
    return image.getWidth();
}
public int getHeight(){
    return image.getHeight();
}
}
7
задан lucian.pantelimon 7 December 2012 в 15:26
поделиться