summaryrefslogtreecommitdiff
path: root/labs/lab02_simpleRGB/ImageViewer.java
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-02-06 11:41:36 -0500
committerAlexander Pickering <alexandermpickering@gmail.com>2017-02-06 11:41:36 -0500
commit89cdf3efb49335e7c07a68a5a64657eeec2288a6 (patch)
treecdc0fd8165e65b1637fa54cac11c932acefc8a89 /labs/lab02_simpleRGB/ImageViewer.java
downloadcoe0445-master.tar.gz
coe0445-master.tar.bz2
coe0445-master.zip
Inital commitHEADmaster
Diffstat (limited to 'labs/lab02_simpleRGB/ImageViewer.java')
-rw-r--r--labs/lab02_simpleRGB/ImageViewer.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/labs/lab02_simpleRGB/ImageViewer.java b/labs/lab02_simpleRGB/ImageViewer.java
new file mode 100644
index 0000000..ecab621
--- /dev/null
+++ b/labs/lab02_simpleRGB/ImageViewer.java
@@ -0,0 +1,85 @@
+import java.io.File;
+import java.io.IOException;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.image.BufferedImage;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.GridLayout;
+import javax.imageio.ImageIO;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+public class ImageViewer
+{
+ public static void main(String[] args) throws IOException
+ {
+ File file = new File("pgh_640x480.jpg");
+ BufferedImage originalImage = ImageIO.read(file);
+
+ int width = originalImage.getWidth();
+ int height = originalImage.getHeight();
+
+ final SimpleRGB[] rgb = new SimpleRGB[5];
+ rgb[0] = new SimpleRGB(width, height);
+
+ for(int i = 0; i < height; i++)
+ {
+ for(int j = 0; j < width; j++)
+ {
+ Color c = new Color(originalImage.getRGB(j,i));
+ rgb[0].setRed(j, i, c.getRed());
+ rgb[0].setGreen(j, i, c.getGreen());
+ rgb[0].setBlue(j, i, c.getBlue());
+ }
+ }
+
+ rgb[1] = rgb[0].getRedImage();
+ rgb[2] = rgb[0].getGreenImage();
+ rgb[3] = rgb[0].getBlueImage();
+ rgb[4] = rgb[0].getGreyImage();
+
+ final RGBComponent rgbc = new RGBComponent(rgb[0]);
+
+ JPanel buttonPanel = new JPanel();
+ buttonPanel.setLayout(new GridLayout(1,5));
+
+ JButton[] button = new JButton[5];
+ button[0] = new JButton("RGB");
+ button[1] = new JButton("Red");
+ button[2] = new JButton("Green");
+ button[3] = new JButton("Blue");
+ button[4] = new JButton("Greyscale");
+
+ class colorButtonListener implements ActionListener
+ {
+ private int index;
+
+ public colorButtonListener(int anIndex)
+ {
+ index = anIndex;
+ }
+
+ public void actionPerformed(ActionEvent arg0)
+ {
+ rgbc.setImage(rgb[index]);
+ }
+ }
+
+ ActionListener[] cbl = new colorButtonListener[5];
+ for(int i = 0; i < 5; i++)
+ {
+ cbl[i] = new colorButtonListener(i);
+ button[i].addActionListener(cbl[i]);
+ buttonPanel.add(button[i]);
+ }
+
+ JFrame frame = new JFrame("Image Viewer");
+ frame.setSize(642,534);
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ frame.add(rgbc);
+ frame.add(buttonPanel, BorderLayout.SOUTH);
+ frame.setVisible(true);
+ }
+}