| 查看: 2786 | 回复: 2 | |||
[交流]
【求助】为什么我获取的像素值都是负数呢? 已有2人参与
|
|
import java.awt.*; import java.awt.image.*; class Getpixel { public static void main(String[] args) { Toolkit getPackage = Toolkit.getDefaultToolkit(); MediaTracker tracker = new MediaTracker(new Canvas()); Image img = getPackage.getImage("e:\\3.jpg " ;tracker.addImage(img, 0); try { tracker.waitForID(0); } catch (InterruptedException e) { e.printStackTrace(); } int w = img.getWidth(null); int h = img.getHeight(null); int[] pixels = new int[w * h]; int gray; PixelGrabber pg = new PixelGrabber(img, 0, 0, w, h, pixels, 0, w); try { pg.grabPixels(); } catch (InterruptedException e) { System.err.println("interrupted waiting for pixels!" ;return; } if ((pg.getStatus() & ImageObserver.ABORT) != 0) { System.err.println("image fetch aborted or errored" ;return; } for (int j = 0; j < h; j++) // 扫描列 { for (int i = 0; i < w; i++) // 扫描行 { System.out.print(pixels[w * j + i] + " " ;} System.out.println(" " ;} } } |
» 猜你喜欢
参与限项
已经有3人回复
假如你的研究生提出不合理要求
已经有7人回复
实验室接单子
已经有4人回复
全日制(定向)博士
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复
holmescn
金虫 (正式写手)
- 程序强帖: 37
- 应助: 1 (幼儿园)
- 金币: 1918.8
- 散金: 275
- 红花: 1
- 帖子: 699
- 在线: 102.6小时
- 虫号: 913482
- 注册: 2009-11-26
- 性别: GG
- 专业: 凝聚态物性 II :电子结构
2楼2010-11-02 10:08:57
★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+2):鼓励应助 2010-11-28 08:35:14
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+2):鼓励应助 2010-11-28 08:35:14
|
里面的pixels 值 是根据 getRGB()方法返回的默认 sRGB ColorModel 中表示颜色的 RGB 值。(24-31 位表示 alpha,16-23 位表示红色,8-15 位表示绿色,0-7 位表示蓝色)。 要得到具体R,G,B颜色分量得做个位移 比如某个pixels值为 rgb 那么根据下面的公式来算 int r = (rgb & 16711680) >> 16; int g = (rgb & 65280) >> 8; int b = (rgb & 255); 就得到了R,G,B三色的int值 |
3楼2010-11-27 14:19:36












;
回复此楼