Как изменить цвет определенных пикселей в растровом Android
У меня есть растровое изображение, которое я хочу изменить определенные пиксели. у меня есть данные из растрового изображения в массив, но как мне установить цвет пикселей в этом массиве?
Спасибо
int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()];
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
for(int i =0; i<500;i++){
//Log.e(TAG, "pixel"+i +pixels[i]);
1 ответ
Решение
Чтобы установить цвета пикселей в вашем pixels
массив, получить значения из статических методов класса Color Android и назначить их в ваш массив. Когда вы закончите, используйте setPixels
скопировать пиксели обратно в растровое изображение.
Например, чтобы превратить первые пять строк растрового изображения в синий:
import android.graphics.Color;
int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()];
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
for (int i=0; i<myBitmap.getWidth()*5; i++)
pixels[i] = Color.BLUE;
myBitmap.setPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
Вы также можете установить цвет пикселя в объекте Bitmap по одному, не устанавливая буфер пикселей с помощью метода setPixel():
myBitmap.setPixel(x, y, Color.rgb(45, 127, 0));