Android – 从照片中更改像素的颜色

我想从相机拍摄的照片中将除黑色以外的所有颜色更改为白色.但是,物体的黑色随着光线和白平衡而变化,它不能被检测为黑色,然后也变为白色

public void subColor(Mat src, String timeStamp, File mediaStorageDir) throws FileNotFoundException {
    Bitmap output = Bitmap.createBitmap(src.width(), src.height(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(src, output);

    for (int x = 0; x < output.getWidth(); x++)
        for (int y = 0; y < output.getHeight(); y++) {
            int pixel = output.getPixel(x, y);
            if (pixel != Color.BLACK)
                output.setPixel(x, y, Color.WHITE);
        }

    String mImageName= timeStamp + "_EDIT" + ".jpg";
    File mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
    FileOutputStream fos = new FileOutputStream(mediaFile);
    output.compress(Bitmap.CompressFormat.JPEG, 100, fos);
}

我想知道像素的颜色是否可以与黑色而不是Color.BLACK的范围进行比较.

谢谢.

最佳答案 黑色没有范围.黑色只是一个.如果你想看看某些东西是否比其他颜色更暗,你可以这样做:

if(Color.red(myColor) < 20 &&
     Color.blue(myColor) < 20 && 
     Color.green(myColor) < 20){
    ...
 }

你要与之比较的颜色是#202020.
如果你想确保颜色是灰色的,请添加Color.red(myColor)== Color.blue(myColor)&& Color.green(myColor)== Color.blue(myColor)

点赞