Jawa Ikon SistemEkstrak
JawaBerikut adalah contoh program yang mengekstrak ikon dari file tertentu ke dalam file gambar PNG. File yang ditentukan dapat berupa jenis file apa pun, termasuk file yang dapat dieksekusi dengan ekstensi seperti .exe, serta .dll, .xls, .doc, dll.
Saya mencari metode serupa di internet, tetapi saya tidak menemukan apa pun.
Namun, saya telah menemukan cara yang sangat mudah untuk mendapatkannya, jadi saya akan membagikannya kepada Anda.
Perlu dicatat bahwa Chat&Messenger tidak menggunakan metode ini.Fungsi untuk melampirkan file ke catatan tempel.Saya menggunakannya.
Verifikasi pengoperasian program sampel
Jalankan contohnya
*Ini dapat dieksekusi jika file jar dikaitkan dengannya.
- Dapatkan kode sumber contoh, kompilasi, dan jalankan.
- Saat Anda meluncurkan aplikasi, jendela utama akan terbuka. Cukup seret dan lepas ikon yang ingin Anda ekstrak ke jendela ini.
- Berkas gambar PNG akan dihasilkan di lokasi yang sama dengan ikon aslinya.
Penjelasan Program Contoh
Proses ekstraksi ikon di Java diimplementasikan menggunakan metode berikut.
-
Atur Tampilan & Nuansa ke Windows.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - File yang diperoleh dengan cara seret dan lepas javax.swing.JFileChooser.getIcon() Metode javax.swing.ikon Konversi ke objek.
- javax.imageio.ImageIO.write() Metode ini menghasilkan objek Icon ke dalam file gambar PNG.
Contoh program
impor javax.imageio.ImageIO;
impor javax.swing.ImageIcon;
impor javax.swing.JFileChooser;
impor javax.swing.JFrame;
impor javax.swing.JLabel;
impor javax.swing.JPanel;
impor javax.swing.SwingConstants;
impor javax.swing.UIManager;
kelas publik IconExtractor memperluas JFrame
mengimplementasikan DropTargetListener {
JPanel pribadi jContentPane = null;
JLabel pribadi jLabel = null;
private JFileChooser chooser;
publik statis void main(String[] args) {
IconExtractor extractor = new IconExtractor();
ekstraktor.setVisible(true);
}
public IconExtractor() {
super();
mencoba {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
chooser = new JFileChooser();
} catch (Exception e) {
e.printStackTrace();
}
inisialisasi();
}
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("Ekstraksi Ikon");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private JPanel getJContentPane() {
jika (jContentPane == null) {
jLabel = new JLabel();
jLabel.setText("Silakan seret ikon.");
jLabel.setBackground(Color.white);
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
jLabel.setOpaque(true);
DropTarget baru (jLabel,
DnDConstants.ACTION_COPY_OR_MOVE, ini);
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(jLabel, BorderLayout.CENTER);
}
kembalikan jContentPane;
}
// — mengimplementasikan DropTargetListener —————————-
public void drop(DropTargetDropEvent dtde) {
dtde.acceptDrop(DnDConstants.ACTION_MOVE);
mencoba {
Transferable tran = dtde.getTransferable();
Daftar fileList = (Daftar) tran
.getTransferData(DataFlavor.javaFileListFlavor);
Iterator iterator = fileList.iterator();
sementara (iterator.hasNext()) {
File file = (File) iterator.next();
ImageIcon icon = (ImageIcon) chooser.getIcon(file);
String ext = file.getAbsoluteFile() + “.png”;
// Simpan file gambar
ImageIO.write((BufferedImage) icon.getImage(), “png”,
File baru (ekstensi));
jLabel.setText(“<html>Ekstraksi selesai<br>”" + ext);
setIconImage(icon.getImage());
}
dtde.dropComplete(true);
} catch (Exception e) {
e.printStackTrace();
dtde.dropComplete(false);
}
}
public void dragEnter(DropTargetDragEvent e) {
}
public void dragOver(DropTargetDragEvent e) {
}
public void dropActionChanged(DropTargetDragEvent e) {
}
public void dragExit(DropTargetEvent e) {
}
}
