我的程序中有一个简短的子例程,可以在Java 7和Windows 7上很好地读取.jpeg图像文件。
我将Java升级到版本12,现在使用Windows 10,它无法再读取.jpeg文件。我正在使用常规的.jpeg文件RGB 8和12位。我想知道现在是否有较新的课程,但是我找不到有关它的信息。
/*
* Get image subroutine
*/
BufferedImage img = null;
try {
img = ImageIO.read(new File(InputFolder + name));
/*
* Get dimension subroutine
*/
int imagewidth = img.getWidth();
int imageheight = img.getHeight();
System.out.println(" retrieving width of " + name + " .... " + imagewidth);
System.out.println(" retriving height of " + name + " .... " + imageheight);
/*textArea1.append("\n retrieving width of "+name+" .... \n"+imagewidth);
textArea1.append("\n retriving height of "+name+" .... \n"+imageheight);*/
我将遇到一个异常,说“文件错误不是图像文件。已中止。 可以使用Photoshop等照片编辑器打开所有文件。
这是新代码。我总是收到-1的宽度和长度。
try {
MediaTracker mt = new MediaTracker(new JPanel());
Image img = Toolkit.getDefaultToolkit().getImage(InputFolder + name);
mt.addImage(img, 0);
System.out.println("Wait image to be load to retrieve info...");
mt.waitForAll();
System.out.println("Loaded");
/**
* Get dimension subroutine
*/
System.out.println(" Get Width & Height ");
int imagewidth = img.getWidth(this);
int imageheight = img.getHeight(this);