Все,
После того, как я заметил, насколько медленными 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();
}
}