我有一个位图文件,test3.bmp我可以使用我测试过的每个图像查看器查看和编辑它.
也就是说,我无法将其读入我的Java应用程序.如果我在MS Paint中编辑BMP,保存它,撤消更改并保存它(test3_resaved.bmp),我有相同的图像,但文件大小不同.不同的文件大小与我无关......我的应用程序可以读取重新保存的文件是什么.
任何人都可以告诉我为什么一个图像与我的代码一起工作但另一个图像没有?
图像文件:
这是一个最小的测试应用程序:
package Test;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class Test extends JFrame {
private ImageIcon imageIcon;
public Test(String filename) throws IOException {
super();
BufferedImage image = javax.imageio.ImageIO.read(new File(filename));
imageIcon = new ImageIcon(image);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
repaint();
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
setSize(imageIcon.getIconWidth(), imageIcon.getIconHeight());
if (imageIcon != null)
g2d.drawImage(imageIcon.getImage(), 0, 0, this);
}
/** …Run Code Online (Sandbox Code Playgroud)