Может ли кто-нибудь предложить мне быстрый метод или библиотеку для эффекта цветного всплеска? Например, я выбираю цвет, и фотография становится ненасыщенной для всех цветов, кроме той, которую я выбрал.
Я попытался использовать проверку цвета по пикселям и затем заменить цвет, но он слишком медленный для больших изображений.
int width = originalImage.getWidth();
int height = originalImage.getHeight();
int[] pixels = new int[width * height];
originalImage.getPixels(pixels, 0, width, 0, 0, width, height);
for (int x = 0; x < pixels.length; ++x) {
pixels[x] = Distance(pixels[x], fromColor) < 4 ? targetColor : pixels[x];
}
Bitmap newImage = Bitmap.createBitmap(width, height, originalImage.getConfig());
newImage.setPixels(pixels, 0, width, 0, 0, width, height);
public int Distance(int a, int b) {
return Math.abs(Color.red(a) - Color.red(b)) + Math.abs(Color.green(a) -
Color.green(b)) + Math.abs(Color.blue(a) - Color.blue(b));
}
РЕДАКТИРОВАТЬ:
Вот оригинальные и обработанные изображения, цвет, который я сохраняю, # ff9350: