import java.awt.*;
import java.awt.image.PixelGrabber;class Getpixel{
public static void main(String[] args) {
Toolkit getPackage = Toolkit.getDefaultToolkit();
Image picture = getPackage.getImage("e:\123.jpg");
System.out.println(picture);
int intWidth=0;
int intHeight=0;
int[] pixels = new int[intWidth * intHeight];
int[][] intPixels;
boolean p = false;
PixelGrabber pg = new PixelGrabber(picture, 0, 0, intWidth, intHeight, pixels, 0, intWidth);
System.out.println(pg);
try {
p=pg.grabPixels();
System.out.println(p);
} catch (InterruptedException e) {
System.err.println("interrupted waiting for pixels!");
e.printStackTrace();
}
System.out.println(intWidth+"\t"+intHeight);
intPixels = new int[intWidth][intHeight];
int i=0,j=0;
for(i=0;i<intWidth;i++)
for(j=0;j<intHeight;j++) {
intPixels[i][j]=pixels[i*intWidth+j];
}
System.out.println("像素矩阵为:");
for(i=0;i<intWidth;i++) {
for(j=0;j<intHeight;j++) {
System.out.print(intPixels[i][j]);
}
System.out.println();
}
}}显示结果为
sun.awt.image.ToolkitImage@16caf43
java.awt.image.PixelGrabber@66848c
false
0 0
像素矩阵为:请问哪里出问题了?请达人解决!
谢谢了!
import java.awt.image.PixelGrabber;class Getpixel{
public static void main(String[] args) {
Toolkit getPackage = Toolkit.getDefaultToolkit();
Image picture = getPackage.getImage("e:\123.jpg");
System.out.println(picture);
int intWidth=0;
int intHeight=0;
int[] pixels = new int[intWidth * intHeight];
int[][] intPixels;
boolean p = false;
PixelGrabber pg = new PixelGrabber(picture, 0, 0, intWidth, intHeight, pixels, 0, intWidth);
System.out.println(pg);
try {
p=pg.grabPixels();
System.out.println(p);
} catch (InterruptedException e) {
System.err.println("interrupted waiting for pixels!");
e.printStackTrace();
}
System.out.println(intWidth+"\t"+intHeight);
intPixels = new int[intWidth][intHeight];
int i=0,j=0;
for(i=0;i<intWidth;i++)
for(j=0;j<intHeight;j++) {
intPixels[i][j]=pixels[i*intWidth+j];
}
System.out.println("像素矩阵为:");
for(i=0;i<intWidth;i++) {
for(j=0;j<intHeight;j++) {
System.out.print(intPixels[i][j]);
}
System.out.println();
}
}}显示结果为
sun.awt.image.ToolkitImage@16caf43
java.awt.image.PixelGrabber@66848c
false
0 0
像素矩阵为:请问哪里出问题了?请达人解决!
谢谢了!
解决方案 »
- 在Java核心技术卷一遇到的一个文件输入问题,书中的源码如下,但在Scanner in = new Scanner(stream)处初始化出错,请各位帮忙看看
- 关于服务器并发数的测试疑问
- 如何方便的从字符串中获取所要的部分
- 第一次来这里,送分了!
- rss与jsp如何结合在一起
- 求教一个NoClassDefFoundError异常问题 大家帮忙啊!急啊!!!!!!谢谢
- 小问题大问题
- 我的类怎么才能在ObjectOutputStream和ObjectInputStream中使用(写入写出)?
- 程序题求解答
- Java if里面的return和if外面的return到底返回的是哪个值?
- 为什么我声明了个自定义类的实例却调不到(Object类)中的clone方法
- JAVA中从键盘键入数据的代码怎么写?
import java.awt.image.PixelGrabber;class Getpixel{
public static void main(String[] args) {
Toolkit getPackage = Toolkit.getDefaultToolkit();
MediaTracker tracker = new MediaTracker(new Canvas());
Image image = getPackage.getImage("c:\\1.jpg");
tracker.addImage(image,0);
try{
tracker.waitForID(0);
}catch(InterruptedException e){
e.printStackTrace();
} int width = image.getWidth(null);
int height = image.getHeight(null); int[] pixels = new int[width * height]; PixelGrabber pg = new PixelGrabber(image, 0, 0, width, height, pixels, 0, width);
try {
pg.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
} System.out.println("像素矩阵为:");
for(int i = 0; i < height; i++){
for(int j = 0; j < width; j++){
System.out.print(pixels[i * width + j] + " ");
}
System.out.println("");
}
}
}
好象应该是
Image picture = getPackage.getImage("e:\\123.jpg");