用java读取位图

panmu 2002-06-05 08:53:46
在java中如何读位图,并分析它的灰度值,并分析出概率
谢谢!!!!
...全文
87 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
panmu 2002-06-07
  • 打赏
  • 举报
回复
真得非常感谢你,我给分。
你能告诉我你是怎么知道这些东西的呢
受人以鱼,不如授之以渔。
你能告诉我学习的途径吗?

还有,如果我想把每个像素点的rgb值都输出到屏幕上应该怎么做。
你给我的程序是对整幅图像进行处理,我想得到图中任意一点的rgb值,
能发信给我吗?panmu@yeah.net
再次感谢,可以的话,我会再开贴给分的。
fightboy 2002-06-06
  • 打赏
  • 举报
回复
//file1
import java.awt.image.*;

public class BWFilter extends RGBImageFilter {
public BWFilter() {
canFilterIndexColorModel = true;
}
public int filterRGB(int x, int y, int rgb) {
DirectColorModel cm =
(DirectColorModel)ColorModel.getRGBdefault();

int alpha = cm.getAlpha(rgb);
int red = cm.getRed (rgb);
int green = cm.getGreen(rgb);
int blue = cm.getBlue (rgb);
int mixed = (red + green + blue) / 3;

red = blue = green = mixed;
alpha = alpha << 24;
red = red << 16;
green = green << 8;

return alpha | red | green | blue;
}
}

//file2
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.net.URL;

public class BWFilterTest extends Applet {
private Image im, bw;

public void init() {
loadImage();
filterImage();
}
public void paint(Graphics g) {
int imw = im.getWidth(this);

g.drawImage(im,0,0,this);
g.drawImage(bw,imw,0,this);
}
private void loadImage() {
try {
URL url = getClass().getResource("tiger.gif");
im = createImage((ImageProducer)url.getContent());
}
catch(Exception e) {
e.printStackTrace();
}

MediaTracker mt = new MediaTracker(this);
mt.addImage(im, 0);
try {
mt.waitForID(0);
}
catch(Exception e) {
e.printStackTrace();
}
}
private void filterImage() {
bw = createImage(new FilteredImageSource(im.getSource(), new BWFilter()));
// bw = javax.swing.GrayFilter.createDisabledImage(im);
}
}

//test.html

<title>BWFilterTest</title>
<applet code="BWFilterTest.class" width=680 height=375></applet>
panmu 2002-06-05
  • 打赏
  • 举报
回复
可否有例程给我借鉴一下?
多谢!
fightboy 2002-06-05
  • 打赏
  • 举报
回复
BufferedImage _image;
String name=".......";

Image loadedImage = Toolkit.getDefaultToolkit().getImage(name);
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(loadedImage, 0);
try { tracker.waitForID(0); }
catch (InterruptedException e) {}
_image = new BufferedImage(loadedImage.getWidth(null),
loadedImage.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = _image.createGraphics();

然后在调用
WritableRaster raster = _image.getRaster();
int[] pixels = new int[3];
raster.getPixel(x,y,pixels);
其中xy为某点的相对坐标
然后pixels中就是这个点的rgb值

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧