Save This Page
Home » openjdk-7 » javax.imageio.plugins » bmp » [javadoc | source]
    1   /*
    2    * Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   package javax.imageio.plugins.bmp;
   27   
   28   import java.util.Locale;
   29   import javax.imageio.ImageWriteParam;
   30   
   31   import com.sun.imageio.plugins.bmp.BMPConstants;
   32   
   33   /**
   34    * A subclass of <code>ImageWriteParam</code> for encoding images in
   35    * the BMP format.
   36    *
   37    * <p> This class allows for the specification of various parameters
   38    * while writing a BMP format image file.  By default, the data layout
   39    * is bottom-up, such that the pixels are stored in bottom-up order,
   40    * the first scanline being stored last.
   41    *
   42    * <p>The particular compression scheme to be used can be specified by using
   43    * the <code>setCompressionType()</code> method with the appropriate type
   44    * string.  The compression scheme specified will be honored if and only if it
   45    * is compatible with the type of image being written. If the specified
   46    * compression scheme is not compatible with the type of image being written
   47    * then the <code>IOException</code> will be thrown by the BMP image writer.
   48    * If the compression type is not set explicitly then <code>getCompressionType()</code>
   49    * will return <code>null</code>. In this case the BMP image writer will select
   50    * a compression type that supports encoding of the given image without loss
   51    * of the color resolution.
   52    * <p>The compression type strings and the image type(s) each supports are
   53    * listed in the following
   54    * table:
   55    *
   56    * <p><table border=1>
   57    * <caption><b>Compression Types</b></caption>
   58    * <tr><th>Type String</th> <th>Description</th>  <th>Image Types</th></tr>
   59    * <tr><td>BI_RGB</td>  <td>Uncompressed RLE</td> <td><= 8-bits/sample</td></tr>
   60    * <tr><td>BI_RLE8</td> <td>8-bit Run Length Encoding</td> <td><= 8-bits/sample</td></tr>
   61    * <tr><td>BI_RLE4</td> <td>4-bit Run Length Encoding</td> <td><= 4-bits/sample</td></tr>
   62    * <tr><td>BI_BITFIELDS</td> <td>Packed data</td> <td> 16 or 32 bits/sample</td></tr>
   63    * </table>
   64    */
   65   public class BMPImageWriteParam extends ImageWriteParam {
   66   
   67       private boolean topDown = false;
   68   
   69       /**
   70        * Constructs a <code>BMPImageWriteParam</code> set to use a given
   71        * <code>Locale</code> and with default values for all parameters.
   72        *
   73        * @param locale a <code>Locale</code> to be used to localize
   74        * compression type names and quality descriptions, or
   75        * <code>null</code>.
   76        */
   77       public BMPImageWriteParam(Locale locale) {
   78           super(locale);
   79   
   80           // Set compression types ("BI_RGB" denotes uncompressed).
   81           compressionTypes = BMPConstants.compressionTypeNames;
   82   
   83           // Set compression flag.
   84           canWriteCompressed = true;
   85           compressionMode = MODE_COPY_FROM_METADATA;
   86           compressionType = compressionTypes[BMPConstants.BI_RGB];
   87       }
   88   
   89       /**
   90        * Constructs an <code>BMPImageWriteParam</code> object with default
   91        * values for all parameters and a <code>null</code> <code>Locale</code>.
   92        */
   93       public BMPImageWriteParam() {
   94           this(null);
   95       }
   96   
   97       /**
   98        * If set, the data will be written out in a top-down manner, the first
   99        * scanline being written first.
  100        *
  101        * @param topDown whether the data are written in top-down order.
  102        */
  103       public void setTopDown(boolean topDown) {
  104           this.topDown = topDown;
  105       }
  106   
  107       /**
  108        * Returns the value of the <code>topDown</code> parameter.
  109        * The default is <code>false</code>.
  110        *
  111        * @return whether the data are written in top-down order.
  112        */
  113       public boolean isTopDown() {
  114           return topDown;
  115       }
  116   }

Save This Page
Home » openjdk-7 » javax.imageio.plugins » bmp » [javadoc | source]