Intereting Posts
Как отключить аннотации Android @IntDef в особых случаях? Google Play Services 5.0.77 Есть ли способ изменить начальную позицию по умолчанию эмулятора? Массив изображений в android Com.google.firebase.database.DatabaseException: вызовы setPersistenceEnabled () должны быть выполнены перед любым другим использованием экземпляра FirebaseDatabase Создание настраиваемого макета для настроек Как управлять ListView с шаблоном MVP для Android Таблетка не может загрузить файл .apk в некоторых браузерах Не удалось слияние манифеста: uses-sdk: minSdkVersion 8 не может быть меньше Android: могу ли я создать представление / холст, который не является прямоугольным, но, например, круглый? Как удалить вкладку из TabHost Можно ли динамически менять адаптер ListView? Компактные альтернативы Java ArrayList <String> Поддерживаемые размеры предварительного просмотра камер для популярных телефонов Android Как получить BSSID всех точек доступа Wi-Fi?

Как изменить цвет определенных пикселей в растровом андроиде

У меня есть растровое изображение, что я хочу изменить определенные пиксели. У меня есть данные из растрового изображения в массив, но как бы установить цвет пикселей в этом массиве?

благодаря

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]); 

Solutions Collecting From Web of "Как изменить цвет определенных пикселей в растровом андроиде"

Чтобы установить цвета пикселей в вашем 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));