2 * Image codec. Author: Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
3 * This project is released under Creative Commons Zero (CC0) license.
5 package eu.svjatoslav.imagesqueeze.sampleApplication;
7 import eu.svjatoslav.imagesqueeze.codec.Image;
11 import java.awt.image.BufferedImage;
14 public class ImagePanel extends javax.swing.JPanel {
15 private BufferedImage bufferedImage;
16 private JLabel imageLabel;
24 * Auto-generated main method to display this JPanel inside a new JFrame.
26 public static void main(final String[] args) {
27 final JFrame frame = new JFrame();
28 frame.getContentPane().add(new ImagePanel());
29 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
31 frame.setVisible(true);
34 public void createEmptyImage(final Dimension dimension) {
36 bufferedImage = new BufferedImage(dimension.width, dimension.height,
37 BufferedImage.TYPE_3BYTE_BGR);
39 final ImageIcon icon = new ImageIcon(bufferedImage);
41 imageLabel.setIcon(icon);
44 private JLabel getImageLabel() {
48 private void initGUI() {
50 final BorderLayout thisLayout = new BorderLayout();
51 setLayout(thisLayout);
52 setPreferredSize(new Dimension(660, 500));
54 imageLabel = new JLabel();
55 this.add(getImageLabel(), BorderLayout.CENTER);
57 } catch (final Exception e) {
62 public void loadImage(final File inputFile, final boolean isImgSqz)
65 try (final FileInputStream fileInputStream = new FileInputStream(inputFile)) {
66 loadImage(fileInputStream, isImgSqz);
70 public void loadImage(final InputStream inputStream, final boolean isImgSqz)
73 // load ImageSqueeze file
75 final Image image = new Image();
76 image.loadImage(inputStream);
78 bufferedImage = image.bufferedImage;
80 final ImageIcon icon = new ImageIcon(bufferedImage);
81 // ImageIcon icon = new ImageIcon("sample data/original.png");
83 imageLabel.setIcon(icon);
86 // load JPEG, PNG, GIF file
87 final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
91 final int b = inputStream.read();
94 outputStream.write(b);
98 final ImageIcon icon = new ImageIcon(outputStream.toByteArray());
100 bufferedImage = new BufferedImage(icon.getIconWidth(),
101 icon.getIconHeight(), BufferedImage.TYPE_3BYTE_BGR);
102 bufferedImage.getGraphics().drawImage(icon.getImage(), 0, 0, null);
104 final ImageIcon displayIcon = new ImageIcon(bufferedImage);
105 imageLabel.setIcon(displayIcon);
109 public void saveImage(final File outputFile) {
110 final Image image = new Image(bufferedImage);
112 image.saveImage(outputFile);
113 } catch (final Exception e) {
114 System.out.println("Error while saving image: " + e.toString());