Java-Java AWT如何获得当前区域的颜色?

发布于 2017-06-28 04:12:11 字数 68 浏览 1289 评论 2

通过Graphics中的setColor可以设置颜色,用fill函数可以填充图形。但是我想获得某个区域的颜色,应该怎么做?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-09-01 09:14:05

可通过获得像素的RGB获得像素的颜色。ColorModel提供了这样的方法:

getRed(int pixel)
返回指定像素(在默认的 RGB ColorSpace,即 sRGB,中缩放范围从 0 到 255)的红色颜色分量。
getGreen(int pixel)
返回指定像素(在默认的 RGB ColorSpace,即 sRGB,中缩放范围从 0 到 255)的绿色颜色分量。
getBlue(int pixel)
返回指定像素(在默认的 RGB ColorSpace(即 sRGB)中缩放范围从 0 到 255)的蓝色分量的值。

pixel可以通过xy的值来表示,即xy表示的像素点是a=x*y点,只要是x和y递增1就可以把全部的像素点遍历。

夜无邪 2017-07-15 12:28:51

public void getPixel(int x,int y){
//获得ImageHolder的色彩模型
ColorModel cm = this.getColorModel();
//把象素形式的色彩组件(ImageHolder)以rgb的形式返回。
int rgb = cm.getRGB(x*y);
//分别获得其r,g,b值。
int red = (rgb>>16)&0xff ;
int green = (rgb>>8)&0xff ;
int blue = (rgb)&0xff ;
System.out.println( "("+red+","+green+ ","+blue+ ")");
}

看上面这个函数,它是获取一个点的 RGB 值的,你取区域中的点调用这个函数就可以获取到颜色值了。
this 是 Canvas 的子类哈

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文