スイングフレームに画像を表示するために次のコードを使用しています。
ImageIcon icon = new ImageIcon("image.jpeg");
icon.getImage().flush();
jLabel3.setIcon( icon );
クリックするとjpeg/png拡張子で画像を保存するボタンが必要です。
私は通常、このようなことをします
Image img = icon.getImage();
BufferedImage bi = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_BYTE_ARGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img, 0, 0, null);
g2.dispose();
ImageIO.write(bi, "jpg", new File("img.jpg"));
BufferedImage.TYPE_INT_RGBなどの他の画像タイプも試してください。BufferedImage をチェックしてください。
この書き込み/画像の保存もお読みください。
それがあなたのために働くことを願っています
ImageIO.write (Image img, String type, File file)を使用して、イメージをファイルシステムに書き込むことを検討してください。
ImageIcon から Image オブジェクトを取得します。getImage()
Button の ActionListener を実装する必要があります。
したがって、最初の部分は actionlistener を実装して、クリックするとボタンが機能するようにします。J ボタン。
2番目の部分は、ImageIo.writeを使用する画像を保存しています
以下のコードを参照してください
public class MyFrame extends JFrame implements ActionListener {
private JButton button1 = new JButton("Click me!");
public MyFrame() {
button1.addActionListener(this);
//... add buttons to frame ...
}
public void actionPerformed(ActionEvent evt) {
Object src = evt.getSource();
if (src == button1) {
string imagename = icon.getDescription;
try {
// retrieve image
BufferedImage bi = icon.getImage();
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
} catch (IOException e)
{
//catch the exception here
}
}
}
}