В моем приложении мне приходится работать с отдельными пикселями изображения. прежде всего, я дам изображение в оттенках серого с этим кодомbitmap, работа с темными цветами
private Bitmap BiancoNero(Bitmap originalBitmap) {
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);
ColorMatrixColorFilter colorMatrixFilter = new ColorMatrixColorFilter(
colorMatrix);
Bitmap blackAndWhiteBitmap = originalBitmap.copy(
Bitmap.Config.ARGB_8888, true);
Paint paint = new Paint();
paint.setColorFilter(colorMatrixFilter);
Canvas canvas = new Canvas(blackAndWhiteBitmap);
canvas.drawBitmap(blackAndWhiteBitmap, 0, 0, paint);
return blackAndWhiteBitmap;
}
после этого, используя матрицу только с 0 и 1 (0 белыми, 1 черными) со следующим контролем
if(colore==-1)
matrice[i][j] = 0; //zero is for white
else if(colore == -16777216)
matrice[i][j] = 1; //black pixel
else
matrice[i][j] =0; //other shades of gray
Как мне получить оттенки темно-серого? То есть, когда мы рассматриваем белый 0% и черный 100%, я хочу найти все цвета, которые выше 66% Я просто положил в if> color = 5592405
(что эквивалентно -16777216/3) будет ли это работать?
Это работает? – hasan83
извините за задержку. завтра проверили – Lele