org.opensourcephysics.media.core
Class ImageVideo

java.lang.Object
  extended by org.opensourcephysics.media.core.VideoAdapter
      extended by org.opensourcephysics.media.core.ImageVideo
All Implemented Interfaces:
java.beans.PropertyChangeListener, java.util.EventListener, Drawable, Interactive, Measurable, DrawableImage, InteractiveImage, Playable, Trackable, Video

public class ImageVideo
extends VideoAdapter

This is a Video assembled from one or more still images.

Version:
1.0
Author:
Douglas Brown

Field Summary
protected  java.awt.image.BufferedImage[] images
           
protected  java.awt.Component observer
           
protected  java.lang.String[] paths
           
 
Fields inherited from class org.opensourcephysics.media.core.VideoAdapter
aspects, bufferedImage, clearRaster, coords, endFrameNumber, filteredImage, filterStack, frameCount, frameNumber, isMeasured, isValidFilteredImage, isValidImage, isValidMeasure, looping, maxX, maxY, minX, minY, mouseEnabled, playing, properties, rate, rawImage, size, startFrameNumber, support, visible, widthDominates
 
Constructor Summary
ImageVideo(java.awt.Image image)
          Creates an ImageVideo from an image.
ImageVideo(java.awt.Image[] images)
          Creates an ImageVideo from an image array.
ImageVideo(java.lang.String imageName)
          Creates an ImageVideo and loads a named image or image sequence.
ImageVideo(java.lang.String imageName, boolean sequence)
          Creates an ImageVideo and loads a named image or image sequence.
 
Method Summary
 void append(java.lang.String imageName)
          Appends the named image or image sequence to the end of this video.
 void append(java.lang.String imageName, boolean sequence)
          Appends the named image or image sequence to the end of this video.
protected  void finalize()
          Called by the garbage collector when this video is no longer in use.
 java.awt.Image[] getImages()
          Gets the image array.
static XML.ObjectLoader getLoader()
          Returns an XML.ObjectLoader to save and load ImageVideo data.
 java.awt.Dimension getSize()
          Gets the size of this video.
protected  java.lang.String[] getValidPaths()
          Returns the valid paths (i.e., those that are not "").
protected  java.lang.String[] getValidPathsRelativeTo(java.lang.String base)
          Returns the valid paths (i.e., those that are not "").
protected  void insert(java.awt.Image[] newImages, int index, java.lang.String[] imagePaths)
          Inserts images starting at the specified index.
 void insert(java.awt.Image image, int index)
          Inserts an image at the specified index.
 void insert(java.lang.String imageName, int index)
          Inserts the named image or image sequence at the specified index.
 void insert(java.lang.String imageName, int index, boolean sequence)
          Inserts the named image or image sequence at the specified index.
 boolean isFileBased()
          Returns true if any of the images were loaded from files.
 java.lang.String remove(int index)
          Removes the image at the specified index.
 boolean saveInvalidImages()
          Allows user to save invalid images, if any.
 void setFrameNumber(int n)
          Overrides VideoAdapter setFrameNumber method.
 
Methods inherited from class org.opensourcephysics.media.core.VideoAdapter
addPropertyChangeListener, addPropertyChangeListener, back, dispose, draw, findInteractive, findMinMaxValues, firePropertyChange, getAngle, getCoords, getDuration, getEndFrameNumber, getEndTime, getFilterStack, getFrameCount, getFrameDuration, getFrameNumber, getFrameTime, getHeight, getImage, getProperty, getPropertyNames, getRate, getRelativeAspect, getStartFrameNumber, getStartTime, getTime, getWidth, getX, getXMax, getXMin, getY, getYMax, getYMin, goToEnd, goToStart, initialize, isEnabled, isLooping, isMeasured, isPlaying, isVisible, play, propertyChange, refreshBufferedImage, removePropertyChangeListener, removePropertyChangeListener, reset, setAngle, setCoords, setEnabled, setEndFrameNumber, setEndTime, setFilterStack, setFrameAngle, setFrameHeight, setFrameRelativeAspect, setFrameWidth, setFrameX, setFrameXY, setFrameY, setHeight, setLooping, setPlaying, setProperty, setRate, setRelativeAspect, setStartFrameNumber, setStartTime, setTime, setVisible, setWidth, setX, setXY, setY, step, stop
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

observer

protected java.awt.Component observer

images

protected java.awt.image.BufferedImage[] images

paths

protected java.lang.String[] paths
Constructor Detail

ImageVideo

public ImageVideo(java.lang.String imageName)
           throws java.io.IOException
Creates an ImageVideo and loads a named image or image sequence.

Parameters:
imageName - the name of the image file
Throws:
java.io.IOException

ImageVideo

public ImageVideo(java.lang.String imageName,
                  boolean sequence)
           throws java.io.IOException
Creates an ImageVideo and loads a named image or image sequence.

Parameters:
imageName - the name of the image file
sequence - true to automatically load image sequence, if any
Throws:
java.io.IOException

ImageVideo

public ImageVideo(java.awt.Image image)
Creates an ImageVideo from an image.

Parameters:
image - the image

ImageVideo

public ImageVideo(java.awt.Image[] images)
Creates an ImageVideo from an image array.

Parameters:
images - the image array
Method Detail

setFrameNumber

public void setFrameNumber(int n)
Overrides VideoAdapter setFrameNumber method.

Specified by:
setFrameNumber in interface Video
Overrides:
setFrameNumber in class VideoAdapter
Parameters:
n - the desired frame number
See Also:
Video.getStartFrameNumber(), Video.getEndFrameNumber()

getImages

public java.awt.Image[] getImages()
Gets the image array.

Returns:
the image array

append

public void append(java.lang.String imageName)
            throws java.io.IOException
Appends the named image or image sequence to the end of this video. This method will ask user whether to load sequences, if any.

Parameters:
imageName - the image name
Throws:
java.io.IOException

append

public void append(java.lang.String imageName,
                   boolean sequence)
            throws java.io.IOException
Appends the named image or image sequence to the end of this video.

Parameters:
imageName - the image name
sequence - true to automatically load image sequence, if any
Throws:
java.io.IOException

insert

public void insert(java.lang.String imageName,
                   int index)
            throws java.io.IOException
Inserts the named image or image sequence at the specified index. This method will ask user whether to load sequences, if any.

Parameters:
imageName - the image name
index - the index
Throws:
java.io.IOException

insert

public void insert(java.lang.String imageName,
                   int index,
                   boolean sequence)
            throws java.io.IOException
Inserts the named image or image sequence at the specified index.

Parameters:
imageName - the image name
index - the index
sequence - true to automatically load image sequence, if any
Throws:
java.io.IOException

insert

public void insert(java.awt.Image image,
                   int index)
Inserts an image at the specified index.

Parameters:
image - the image
index - the index

remove

public java.lang.String remove(int index)
Removes the image at the specified index.

Parameters:
index - the index
Returns:
the path of the image, or null if none removed

getSize

public java.awt.Dimension getSize()
Gets the size of this video.

Returns:
the maximum size of the images

isFileBased

public boolean isFileBased()
Returns true if any of the images were loaded from files.

Returns:
true if any images are file-based

saveInvalidImages

public boolean saveInvalidImages()
Allows user to save invalid images, if any.

Returns:
true if saved

finalize

protected void finalize()
Called by the garbage collector when this video is no longer in use.

Overrides:
finalize in class VideoAdapter

getValidPaths

protected java.lang.String[] getValidPaths()
Returns the valid paths (i.e., those that are not ""). Invalid paths are associated with pasted images rather than files.

Returns:
the valid paths

getValidPathsRelativeTo

protected java.lang.String[] getValidPathsRelativeTo(java.lang.String base)
Returns the valid paths (i.e., those that are not ""). Invalid paths are associated with pasted images rather than files.

Returns:
the valid paths

insert

protected void insert(java.awt.Image[] newImages,
                      int index,
                      java.lang.String[] imagePaths)
Inserts images starting at the specified index.

Parameters:
newImages - an array of images
index - the insertion index
imagePaths - array of image file paths.

getLoader

public static XML.ObjectLoader getLoader()
Returns an XML.ObjectLoader to save and load ImageVideo data.

Returns:
the object loader