java 像素值_(java)图片像素的操作

因为做个游戏,需要一些图片资源,而获取到的图片资源都是jpg格式的,不是透明的,例如下面样式的:

fad203ab6d4f93a5c7d3b6fcd0f4af78.png

为了取出其中的蓝光部分,透明化黑色背景,我开始了图片处理探索之路。

这篇文章的内容包含以下部分:

1.RGB是什么?

2.获取图片指定位置的RGB值

3.图片的灰化处理

4.修改图片的透明通道alpha

————————————————————————————————————————————————————————————————————

RGB是什么?

这里简单说一下,RGB即是red,green,blue的缩写,即红绿蓝三种颜色。可以通过这三种颜色按一定比例混合,可以形成任何颜色。

图片是由许许多多个像素组成,每一像素是一种颜色,有rgb按一定比例混合而成,平常rbg的取值范围为0~255,当red,green,blue的值都为0时,这个像素的颜色就为黑色,都为255时就是白色,当他们的值相同时,混合色变相为灰色。所以,一个像素点可以表示的颜色的个数为 255 * 255 * 255个,是非常多的。

这里不多做介绍,百科还是很详细的。

获取图片指定位置的RGB值

使用java获取一个像素的RGB,需要使用BufferedImage这个类,这个类提供修改图片数据的方法。

1 /**2 * 读取一张图片的RGB值3 */

4 public voidgetImagePixel(String image) {5

6 int[] rgb = new int[3];7 File file = newFile(image);8 BufferedImage bi = null;9 try{10 bi =ImageIO.read(file);11 } catch(IOException e) {12

13 e.printStackTrace();14 }15 int width =bi.getWidth();16 int height =bi.getHeight();17 int minX =bi.getMinX();18 int minY =bi.getMinY();19 for(int y = minY; y < height; y++) {20 for(int x = minX; x < width; x++) {21 //获取包含这个像素的颜色信息的值, int型

22 int pixel =bi.getRGB(x, y);23 //从pixel中获取rgb的值

24 rgb[0] = (pixel & 0xff0000) >> 16; //r

25 rgb[1] = (pixel & 0xff00) >> 8; //g

26 rgb[2] = (pixel & 0xff); //b

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值