最近需要修改一个算法,将原来的j2se上的代码迁到android上,原来的算法是用到的颜色RGB提起需要下面几个android没有的包包:

import java.awt.color.ColorSpace;

import java.awt.image.BufferedImage;

import java.awt.image.WritableRaster;

import javax.imageio.ImageIO;  而在android上,我们只需通过bitmap来简单读取即可

先读取bitmap:

String path = "/mnt/sdcard/test2.png";

BitmapFactory.Options op = new BitmapFactory.Options();

op.inPreferredConfig = Bitmap.Config.ARGB_8888;

Bitmap targetBitmap = BitmapFactory.decodeFile(path,op); 然后,根据坐标获取像素,然后用Color来读取RGB即可:

int rgbPixel = targetBitmap.getPixel(x, y);

Log.i("Value", "pixel: " + Integer.toHexString(rgbPixel));

Log.i("Value", "rgb: r---" + Color.red(rgbPixel) + " g-- " + Color.green(rgbPixel) +" b--"+Color.blue(rgbPixel)); 另外,需要注意的是,获取bitmap时,BitmapFactory.Options 参数最好设置上,不然获取的图片宽高将和实际的有偏差

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐