我的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);
阅读drawImage(…)
方法的 API。
您没有指定要绘制的图像的宽度/高度参数,因此不会开始绘制任何内容。
此外,您正在将缓冲图像绘制到自身上。
如果要从标签中绘制图像,则需要以下代码:
ImageIcon icon = (ImageIcon)label.getIcon();
g1.drawImage(icon.getImage(), …);