API Review: BufferedImage import/export utilities
Kevin Rushforth
kevin.rushforth at oracle.com
Fri May 18 12:52:33 PDT 2012
Looks great.
-- Kevin
Jim Graham wrote:
> Now that the Image Ops provide a supported way of manipulating the
> pixels of an Image, we can add supported methods for managing
> BufferedImage import and export in the javafx.embed.swing package. I
> am proposing the following simple utility class for 2.2:
>
> package javafx.embed.swing;
>
> /**
> * This class provides utility methods for converting data types between
> * Swing/AWT and JavaFX formats.
> */
> public class SwingUtils {
> private SwingUtils() {} // no instances
>
> /**
> * Snapshots the specified {@link BufferedImage} and stores a copy of
> * its pixels into a JavaFX {@link Image} object, creating a new
> * object if needed.
> * The returned {@code Image} will be a static snapshot of the state
> * of the pixels in the {@code BufferedImage} at the time the method
> * completes. Further changes to the {@code BufferedImage} will not
> * be reflected in the {@code Image}.
> * <p>
> * The optional JavaFX {@link WritableImage} parameter may be reused
> * to store the copy of the pixels.
> * A new {@code Image} will be created if the supplied object is
> null,
> * is too small or of a type which the image pixels cannot be easily
> * converted into.
> *
> * @param bimg the {@code BufferedImage} object to be converted
> * @param wimg an optional {@code WritableImage} object that can be
> * used to store the returned pixel data
> * @return an {@code Image} object representing a snapshot of the
> * current pixels in the {@code BufferedImage}.
> */
> public static WritableImage toFXImage(BufferedImage bimg,
> WritableImage wimg);
>
> /**
> * Snapshots the specified JavaFX {@link Image} object and stores a
> * copy of its pixels into a {@link BufferedImage} object, creating
> * a new object if needed.
> * The method will only convert a JavaFX {@code Image} that is
> readable
> * as per the conditions on the
> * {@link Image#getPixelReader() Image.getPixelReader()}
> * method.
> * If the {@code Image} is a writable, or other dynamic image, then
> * the {@code BufferedImage} will only be set to the current state of
> * the pixels in the image as determined by its {@link PixelReader}.
> * Further changes to the pixels of the {@code Image} will not be
> * reflected in the returned {@code BufferedImage}.
> * <p>
> * The optional {@code BufferedImage} parameter may be reused to
> store
> * the copy of the pixels.
> * A new {@code BufferedImage} will be created if the supplied object
> * is null, is too small or of a type which the image pixels cannot
> * be easily converted into.
> *
> * @param img the JavaFX {@code Image} to be converted
> * @param bimg an optional {@code BufferedImage} object that may be
> * used to store the returned pixel data
> * @return a {@code BufferedImage} containing a snapshot of the
> JavaFX
> * {@code Image}
> */
> public static BufferedImage fromFXImage(Image img,
> BufferedImage bimg);
> }
>
> ...jim
More information about the openjfx-dev
mailing list