只有红色值的图片:Android

时间:2013-12-03 05:35:37

标签: android image-processing

我们可以显示只有红色值的图像吗?它只是为了看到图像上不同浓度的红色值。任何帮助都会很明显。

testButton.setOnClickListener(new Button.OnClickListener(){

        @Override
        public void onClick(View v) 
        {

            int redValue = Color.red(bitmap.getPixel(400, 200));
            txtData.setText(Integer.toHexString(redValue));
            txtData.setTextColor(redValue);
        }
 });

这是一个示例代码。在这里我也得到了红色值。但是最后一行没有被执行,因为红色值不是颜色......因此完全透明。但有没有办法呢  我们可以操纵这个值,我们可以看到红色的这个值

2 个答案:

答案 0 :(得分:0)

BufferedImage类可能拥有实现所需目标所需的所有方法。

  1. 将图像加载到缓冲区
  2. 逐个像素地循环遍历图像,x和y
  3. 有两个for循环
  4. 使用getRGB获取该像素的值
  5. 通过移动步骤3中的结果来修改RGB值,我认为右移16值然后再左移16应该有效。
  6. 使用setRGB将值重新放回特定像素

答案 1 :(得分:0)

你可以使用

   txtData.setTextColor(Color.argb(0xFF,redValue,0,0));

试试这个......

public static Bitmap getRedComponentBitmap(Bitmap source) {
    Bitmap bitmap = Bitmap.createBitmap(source.getWidth(),source.getHeight(), Bitmap.Config.ARGB_8888);
    for (int i = 0; i < source.getWidth(); i++) {
        for (int j = 0; j < source.getHeight(); j++) {
            int pixel = source.getPixel(i, j);
            // get red color value
            int red = Color.red(pixel);
            int color = Color.argb(0xFF, red, 0, 0);
            bitmap.setPixel(i, j, color);
        }
    }
    return bitmap;
}

我建议在非UI线程中使用此方法。