summaryrefslogtreecommitdiff
path: root/WPIJavaCV/src/edu/wpi/first/wpijavacv/WPIImage.java
diff options
context:
space:
mode:
Diffstat (limited to 'WPIJavaCV/src/edu/wpi/first/wpijavacv/WPIImage.java')
-rw-r--r--WPIJavaCV/src/edu/wpi/first/wpijavacv/WPIImage.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/WPIJavaCV/src/edu/wpi/first/wpijavacv/WPIImage.java b/WPIJavaCV/src/edu/wpi/first/wpijavacv/WPIImage.java
new file mode 100644
index 0000000..609aaaa
--- /dev/null
+++ b/WPIJavaCV/src/edu/wpi/first/wpijavacv/WPIImage.java
@@ -0,0 +1,76 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package edu.wpi.first.wpijavacv;
+
+import static com.googlecode.javacv.cpp.opencv_core.*;
+import java.awt.image.BufferedImage;
+
+/**
+ * This class is the superclass of all images.
+ *
+ * @author Greg Granito
+ */
+public class WPIImage extends WPIDisposable {
+
+ /** The underlying {@link IplImage} */
+ protected IplImage image;
+
+ /**
+ * Instantiates a {@link WPIImage} from a {@link BufferedImage}.
+ * Useful for interacting with swing.
+ * This will not keep a reference to the given image, so any modification to this
+ * {@link WPIImage} will not change the given image.
+ * @param image the image to copy into a {@link WPIImage}
+ */
+ public WPIImage(BufferedImage image) {
+ this(IplImage.createFrom(image));
+ }
+
+ /**
+ * Instantiates a {@link WPIImage} from the given {@link IplImage}.
+ * The resulting image will be directly wrapped around the given image, and so any modifications
+ * to the {@link WPIImage} will reflect on the given image.
+ * @param image the image to wrap
+ */
+ public WPIImage(IplImage image) {
+ this.image = image;
+ }
+
+ /**
+ * Returns the width of the image.
+ * @return the width in pixels of the image
+ */
+ public int getWidth() {
+ validateDisposed();
+
+ return image.width();
+ }
+
+ /**
+ * Returns the height of the image.
+ * @return the height in pixels of the image
+ */
+ public int getHeight() {
+ validateDisposed();
+
+ return image.height();
+ }
+
+ /**
+ * Copies this {@link WPIImage} into a {@link BufferedImage}.
+ * This method will always generate a new image.
+ * @return a copy of the image
+ */
+ public BufferedImage getBufferedImage() {
+ validateDisposed();
+
+ return image.getBufferedImage();
+ }
+
+ @Override
+ protected void disposed() {
+ image.release();
+ }
+}