У меня есть image_source
, который является исходным растровым изображением с некоторым изображением и image_new
- временное растровое изображение
Я делаю этот код, который делает image_source
фоновым слоем анаглифа:
int [] pixel = {0x0, 0x0, 0x0};
int [] image_params = {image_source.getWidth() - 2 * anaglyph_amplitude, image_source.getHeight()};
Bitmap image_new = Bitmap.createScaledBitmap(image_source, image_params[0], image_params[1], false);
for(int i = 0; i < image_params[0]; ++i)
for(int j = 0; j < image_params[1]; ++j) {
pixel[0] = image_source.getPixel(i, j);
pixel[1] = image_source.getPixel(i + 2 * anaglyph_amplitude, j);
pixel[2] = pixel[0] + pixel[1] % 0x10000 - pixel[0] % 0x10000;
image_new.setPixel(i, j, pixel[2]);
}
image_source = Bitmap.createBitmap(image_new);
image_new = null;
Затем image_source
рисуется на холсте (рисование на холсте у них недоступно).
Проблема в том, что этой программе требуется около 5 секунд для обработки изображения размером 1000x1000 на интеллектуальном устройстве Android.
Есть ли другие способы запуска растровых пикселей?