📄 SeciliAlanKeydet.java .java dosyası

⬇️ İndir
import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.event.MouseInputAdapter; public class SeciliAlanKeydet { private BufferedImage resim; private Rectangle seciliAlan; private Point seciliAlanBaslangic; public SeciliAlanKeydet() throws IOException { resim = ImageIO.read(new File("src/images/sehir.jpeg")); seciliAlan = new Rectangle(0, 0, 400, 225); seciliAlanBaslangic = new Point(0, 0); JPanel panel = new JPanel() { public void paintComponent(Graphics grafik) { grafik.drawImage(resim, 0, 0, null); grafik.drawRect(seciliAlan.x, seciliAlan.y, seciliAlan.width, seciliAlan.height); } public Dimension getPreferredSize() { // Panelin ölçüsü resim ölçüsüne ayarlanir... return new Dimension(resim.getWidth(), resim.getHeight()); } }; panel.addMouseListener(new MouseInputAdapter() { public void mousePressed(MouseEvent event) { seciliAlanBaslangic = event.getPoint(); seciliAlan.setLocation(seciliAlanBaslangic); } public void mouseReleased(MouseEvent event) { kaydet(); kaydetOlcu(); } }); panel.addMouseMotionListener(new MouseInputAdapter() { public void mouseDragged(MouseEvent e) { int x = Math.min(e.getX(), seciliAlanBaslangic.x); int y = Math.min(e.getY(), seciliAlanBaslangic.y); int width = Math.abs(e.getX() - seciliAlanBaslangic.x); int height = Math.abs(e.getY() - seciliAlanBaslangic.y); seciliAlan.setBounds(x, y, width, height); panel.repaint(); } }); JFrame frame = new JFrame("Seçili Resim Alanini Kaydet | Java Blackboard [109]"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.getContentPane().add(panel); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } // verilen olcude kaydeder ---> 730 x 650 px // Ölçü ---> 730 x 650 px private void kaydetOlcu() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-d HH-mm-ss"); Date date = new Date(); int genislik = 730; int yukseklik = 650; BufferedImage secilenAlan = resim.getSubimage(seciliAlan.x, seciliAlan.y, seciliAlan.width, seciliAlan.height); BufferedImage scaledImage = new BufferedImage(genislik, yukseklik, secilenAlan.getType()); Graphics2D graphics = scaledImage.createGraphics(); graphics.drawImage(secilenAlan, 0, 0, genislik, yukseklik, null); graphics.dispose(); File kaydedilecekDosya = new File("src/images/secilenAlan-"+dateFormat.format(date)+".jpg"); try { ImageIO.write(scaledImage, "jpg", kaydedilecekDosya); System.out.println("Dosya kaydedildi: " + kaydedilecekDosya.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } // Mouse ile seçilen alani kaydeder... // Mouse ile belirlenen Orijinal olçüde.... private void kaydet() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-d HH-mm-ss"); Date date = new Date(); BufferedImage secilenAlan = resim.getSubimage(seciliAlan.x, seciliAlan.y, seciliAlan.width, seciliAlan.height); Graphics2D graphics = secilenAlan.createGraphics(); graphics.drawImage(secilenAlan, 0, 0, seciliAlan.width, seciliAlan.height, null); graphics.dispose(); File kaydedilecekDosya = new File("src/images/secilenAlan_"+dateFormat.format(date)+".jpg"); try { ImageIO.write(secilenAlan, "jpg", kaydedilecekDosya); System.out.println("Dosya kaydedildi: " + kaydedilecekDosya.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { SwingUtilities.invokeLater(() -> { try { new SeciliAlanKeydet(); } catch (IOException e) { e.printStackTrace(); } }); } }