我的java代码在一个标签上放置了一个图片,在代码中是label1。当用户点击b1按钮时,它应该以特定的大小导出图片。现在,一个图像文件被导出,但它只是一个黑色的屏幕。标签上的图像没有被传输。我希望标签上的图像能够被传输。
JLabel labels = new JLabel("Label 2");
static JButton b1 = new JButton("First");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
BufferedImage scaledButtonImage =
new BufferedImage(400, 1000, bimg.getType());
Graphics g1 = scaledButtonImage.createGraphics();
g1.drawImage(scaledButtonImage, 0, 0, 0, 0, null);
g1.dispose();
label2.setIcon(new ImageIcon(bimg));
try {
ImageIO.write(scaledButtonImage, "png",file);
}
});
}
现在,一个图像文件被导出,但它只是一个黑色的屏幕。
g1.drawImage(scaledButtonImage, 0, 0, 0, 0, null);
阅读API的内容 drawImage(…)
方法,你没有指定你要绘制的图像的宽度和高度参数,所以什么也没有开始绘制。
你没有指定要绘制的图像的宽度和高度参数,所以什么也没有开始绘制。
另外,你把BufferedImage画到了自己身上。
如果你想从标签中绘制图像,你需要像这样的代码。
ImageIcon icon = (ImageIcon)label.getIcon();
g1.drawImage(icon.getImage(), …);