diff --git a/image-processing/pom.xml b/image-processing/pom.xml
index ccb3238a7e..2e4063964e 100644
--- a/image-processing/pom.xml
+++ b/image-processing/pom.xml
@@ -40,6 +40,16 @@
commons-logging
+
+
+ com.twelvemonkeys.imageio
+ imageio-core
+ 3.3.2
+
+
+ com.twelvemonkeys.imageio
+ imageio-bmp
+ 3.3.2
diff --git a/image-processing/src/main/java/com/baeldung/imageprocessing/twelvemonkeys/TwelveMonkeysExample.java b/image-processing/src/main/java/com/baeldung/imageprocessing/twelvemonkeys/TwelveMonkeysExample.java
new file mode 100644
index 0000000000..78c7b6a99b
--- /dev/null
+++ b/image-processing/src/main/java/com/baeldung/imageprocessing/twelvemonkeys/TwelveMonkeysExample.java
@@ -0,0 +1,47 @@
+package com.baeldung.imageprocessing.twelvemonkeys;
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+
+import javax.imageio.ImageIO;
+import javax.swing.ImageIcon;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+public class TwelveMonkeysExample {
+ public static void main(String[] args) throws IOException {
+ BufferedImage image = loadImage();
+ drawRectangle(image);
+ displayImage(image);
+ }
+
+ private static BufferedImage loadImage() throws IOException {
+ String imagePath = TwelveMonkeysExample.class.getClassLoader().getResource("Penguin.ico").getPath();
+ return ImageIO.read(new File(imagePath));
+ }
+
+ private static void drawRectangle(BufferedImage image) {
+ Graphics2D g = (Graphics2D) image.getGraphics();
+ g.setStroke(new BasicStroke(3));
+ g.setColor(Color.BLUE);
+ g.drawRect(10, 10, image.getWidth() - 20, image.getHeight() - 20);
+ }
+
+ private static void displayImage(BufferedImage image) {
+ JLabel picLabel = new JLabel(new ImageIcon(image));
+
+ JPanel jPanel = new JPanel();
+ jPanel.add(picLabel);
+
+ JFrame f = new JFrame();
+ f.setSize(new Dimension(200, 200));
+ f.add(jPanel);
+ f.setVisible(true);
+ }
+}
diff --git a/image-processing/src/main/resources/Penguin.ico b/image-processing/src/main/resources/Penguin.ico
new file mode 100644
index 0000000000..a6df5d71a8
Binary files /dev/null and b/image-processing/src/main/resources/Penguin.ico differ