На этот вопрос уже есть ответ здесь:
Привет, ребята, мне нужна ваша помощь, я пытаюсь преобразовать цветное изображение в оттенки серого с помощью средний красный, зеленый, синий. Но это выходит с ошибками,
Вот мой код
imgWidth = myBitmap.getWidth();
imgHeight = myBitmap.getHeight();
for(int i =0;i
Но когда я запускаю свое приложение на эмуляторе, оно закрывается принудительно. Есть идеи?
Я решил свою проблему, используя следующий код:
for(int x = 0; x < width; ++x) {
for(int y = 0; y < height; ++y) {
// get one pixel color
pixel = src.getPixel(x, y);
// retrieve color of all channels
A = Color.alpha(pixel);
R = Color.red(pixel);
G = Color.green(pixel);
B = Color.blue(pixel);
// take conversion up to one single value
R = G = B = (int)(0.299 * R + 0.587 * G + 0.114 * B);
// set new pixel color to output bitmap
bmOut.setPixel(x, y, Color.argb(A, R, G, B));
}
}