📄 FrameJPEGKaydet.java .java dosyası
⬇️ İndir
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
public class FrameJPEGKaydet {
public static String masaustuYolunuAl() {
// Kullanıcının masaüstü klasörünün yolunu get() metodu ile aliyoruz.
Path masaustuYolu = Paths.get(System.getProperty("user.home"), "Desktop");
// Daha sonra, bulunan yolu String olarak dönüştürmek için toString() yöntemini kullanırız.
String desktopPathString = masaustuYolu.toString();
// Son olarak, bulunan masaüstü yolunu döndürürüz.
return desktopPathString;
}
public static JLabel resimEkle(int w, int h) throws IOException {
// Rastgele bir resmi aliyoruz istenen olcude
URL imageUrl = new URL("https://picsum.photos/"+w+"/"+h);
Image resim = ImageIO.read(imageUrl);
// Resmi frame'e ekliyoruz
JLabel label = new JLabel(new ImageIcon(resim));
label.setBounds(0,0,w,h);
return label;
}
public FrameJPEGKaydet() throws IOException {
// Frame olusturuyoruz
JFrame frame = new JFrame();
frame.setSize(400, 400);
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBounds(0,0,400,400);
panel.add(resimEkle(400,400));
// Sağ tıklama menüsü olusturuyoruz.
JPopupMenu menu = new JPopupMenu();
JMenuItem saveAsJpeg = new JMenuItem("Save as JPEG");
JMenuItem saveAsPng = new JMenuItem("Save as PNG");
JMenuItem menuArasi = new JMenuItem("----------");
JMenuItem yeniResim1 = new JMenuItem("Yeni Resim (400x400 px)");
JMenuItem yeniResim2 = new JMenuItem("Yeni Resim (800x600 px)");
JMenuItem yeniResim3 = new JMenuItem("Yeni Resim (416x312 px)");
saveAsJpeg.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Resmi jpeg olarak kaydetme
try {
BufferedImage bufferedImage = new BufferedImage(panel.getWidth(), panel.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.getGraphics();
panel.paint(g);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-d HH-mm-ss");
Date date = new Date();
//Screenshot from 2022-12-18 11-03-32
ImageIO.write(bufferedImage, "jpeg", new File(masaustuYolunuAl()+"/Kida/resim-"+dateFormat.format(date)+".jpg"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
saveAsPng.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Resmi png olarak kaydetme
try {
BufferedImage bufferedImage = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.getGraphics();
panel.paint(g);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-d HH-mm-ss");
Date date = new Date();
//Resim kayit dosya ismini ayarliyoruz: resim-2022-12-18 11-03-32.jpg
ImageIO.write(bufferedImage, "png", new File(masaustuYolunuAl()+"/Kida/resim-"+dateFormat.format(date)+".png"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
yeniResim1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
panel.removeAll();
try {
panel.add(resimEkle(400,400));
} catch (IOException e) {
e.printStackTrace();
}
frame.setSize(400,400);
panel.setSize(400,400);
frame.repaint();
}
});
yeniResim2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
panel.removeAll();
try {
panel.add(resimEkle(800,600));
} catch (IOException e) {
e.printStackTrace();
}
frame.setSize(800,600);
panel.setSize(800,600);
frame.repaint();
}
});
yeniResim3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
panel.removeAll();
try {
panel.add(resimEkle(416,312));
} catch (IOException e) {
e.printStackTrace();
}
frame.setSize(416,312);
panel.setSize(416,312);
frame.repaint();
}
});
menu.add(saveAsJpeg);
menu.add(saveAsPng);
menu.add(menuArasi);
menu.add(yeniResim1);
menu.add(yeniResim2);
menu.add(yeniResim3);
// Sağ tıklama menüsünü ekleyin
panel.setComponentPopupMenu(menu);
frame.add(panel);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}