Class PNGEncoder

java.lang.Object
sim.util.media.PNGEncoder

public class PNGEncoder extends Object
PNGEncoder takes a Java Image object and creates a byte string which can be saved as a PNG file. The Image is presumed to use the DirectColorModel.

This code is taken, with permission, from J. David Eisenberg (david@catcode.com), and is distributed under the Artistic License.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Constants for filters
    static final int
     
    static final int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Class constructor
    Class constructor specifying Image to encode, with no alpha channel encoding.
    PNGEncoder(Image image, boolean encodeAlpha)
    Class constructor specifying Image to encode, and whether to encode alpha.
    PNGEncoder(Image image, boolean encodeAlpha, int whichFilter)
    Class constructor specifying Image to encode, whether to encode alpha, and filter to use.
    PNGEncoder(Image image, boolean encodeAlpha, int whichFilter, int compLevel)
    Class constructor specifying Image source to encode, whether to encode alpha, filter to use, and compression level.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Retrieve compression level
    boolean
    Retrieve alpha encoding status.
    int
    Retrieve filtering scheme
    byte[]
    Creates an array of bytes that is the PNG equivalent of the current image, specifying whether to encode alpha or not.
    void
    Set the compression level to use
    void
    setEncodeAlpha(boolean encodeAlpha)
    Set the alpha encoding on or off.
    void
    setFilter(int whichFilter)
    Set the filter to use
    void
    setImage(Image image)
    Set the image to be encoded

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • PNGEncoder

      public PNGEncoder()
      Class constructor
    • PNGEncoder

      public PNGEncoder(Image image)
      Class constructor specifying Image to encode, with no alpha channel encoding.
      Parameters:
      image - A Java Image object which uses the DirectColorModel
      See Also:
    • PNGEncoder

      public PNGEncoder(Image image, boolean encodeAlpha)
      Class constructor specifying Image to encode, and whether to encode alpha.
      Parameters:
      image - A Java Image object which uses the DirectColorModel
      encodeAlpha - Encode the alpha channel? false=no; true=yes
      See Also:
    • PNGEncoder

      public PNGEncoder(Image image, boolean encodeAlpha, int whichFilter)
      Class constructor specifying Image to encode, whether to encode alpha, and filter to use.
      Parameters:
      image - A Java Image object which uses the DirectColorModel
      encodeAlpha - Encode the alpha channel? false=no; true=yes
      whichFilter - 0=none, 1=sub, 2=up
      See Also:
    • PNGEncoder

      public PNGEncoder(Image image, boolean encodeAlpha, int whichFilter, int compLevel)
      Class constructor specifying Image source to encode, whether to encode alpha, filter to use, and compression level.
      Parameters:
      image - A Java Image object
      encodeAlpha - Encode the alpha channel? false=no; true=yes
      whichFilter - 0=none, 1=sub, 2=up
      compLevel - 0..9
      See Also:
  • Method Details

    • setImage

      public void setImage(Image image)
      Set the image to be encoded
      Parameters:
      image - A Java Image object which uses the DirectColorModel
      See Also:
    • pngEncode

      public byte[] pngEncode()
      Creates an array of bytes that is the PNG equivalent of the current image, specifying whether to encode alpha or not.
      Parameters:
      encodeAlpha - boolean false=no alpha, true=encode alpha
      Returns:
      an array of bytes, or null if there was a problem
    • setEncodeAlpha

      public void setEncodeAlpha(boolean encodeAlpha)
      Set the alpha encoding on or off.
      Parameters:
      encodeAlpha - false=no, true=yes
    • getEncodeAlpha

      public boolean getEncodeAlpha()
      Retrieve alpha encoding status.
      Returns:
      boolean false=no, true=yes
    • setFilter

      public void setFilter(int whichFilter)
      Set the filter to use
      Parameters:
      whichFilter - from constant list
    • getFilter

      public int getFilter()
      Retrieve filtering scheme
      Returns:
      int (see constant list)
    • setCompressionLevel

      public void setCompressionLevel(int level)
      Set the compression level to use
      Parameters:
      level - 0 through 9
    • getCompressionLevel

      public int getCompressionLevel()
      Retrieve compression level
      Returns:
      int in range 0-9