You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by es...@locus.apache.org on 2000/11/24 12:23:32 UTC

cvs commit: xml-fop/src/org/apache/fop/image AbstractFopImage.java

eschaeffer    00/11/24 03:23:30

  Modified:    src/org/apache/fop/image AbstractFopImage.java
  Log:
  patch from Kelly A. Campbell
  doesn't need to compile FOP without Jimi.
  
  Revision  Changes    Path
  1.2       +297 -296  xml-fop/src/org/apache/fop/image/AbstractFopImage.java
  
  Index: AbstractFopImage.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/AbstractFopImage.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractFopImage.java	2000/08/11 14:32:06	1.1
  +++ AbstractFopImage.java	2000/11/24 11:23:29	1.2
  @@ -1,296 +1,297 @@
  -/*
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  - 4. The names "Fop" and  "Apache Software Foundation"  must not be used to
  -    endorse  or promote  products derived  from this  software without  prior
  -    written permission. For written permission, please contact
  -    apache@apache.org.
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - James Tauber <jt...@jtauber.com>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  - */
  -
  -package org.apache.fop.image;
  -
  -// Java
  -import java.util.Hashtable;
  -import java.net.URL;
  -
  -// FOP
  -import org.apache.fop.datatypes.ColorSpace;
  -import org.apache.fop.pdf.PDFColor;
  -import org.apache.fop.pdf.PDFFilter;
  -import org.apache.fop.image.analyser.ImageReaderFactory;
  -import org.apache.fop.image.analyser.ImageReader;
  -
  -/**
  - * Base class to implement the FopImage interface.
  - * @author Eric SCHAEFFER
  - * @see FopImage
  - */
  -public abstract class AbstractFopImage implements FopImage {
  -  /**
  -   * Image width (in pixel).
  -   */
  -  protected int m_width = 0;
  -  /**
  -   * Image height (in pixel).
  -   */
  -  protected int m_height = 0;
  -  /**
  -   * Image URL.
  -   */
  -  protected URL m_href = null;
  -  /**
  -   * ImageReader object (to obtain image header informations).
  -   */
  -  protected ImageReader m_imageReader = null;
  -  /**
  -   * Image color space (org.apache.fop.datatypes.ColorSpace).
  -   */
  -  protected ColorSpace m_colorSpace = null;
  -  /**
  -   * Bits per pixel.
  -   */
  -  protected int m_bitsPerPixel = 0;
  -  /**
  -   * Image data (uncompressed).
  -   */
  -  protected byte[] m_bitmaps = null;
  -  /**
  -   * Image data size.
  -   */
  -  protected int m_bitmapsSize = 0;
  -  /**
  -   * Image transparency.
  -   */
  -  protected boolean m_isTransparent = false;
  -  /**
  -   * Transparent color (org.apache.fop.pdf.PDFColor).
  -   */
  -  protected PDFColor m_transparentColor = null;
  -
  -  /**
  -   * Constructor.
  -   * Construct a new FopImage object and initialize its default properties:
  -   * <UL>
  -   *  <LI>image width
  -   *  <LI>image height
  -   * </UL>
  -   * The image data isn't kept in memory.
  -   * @param href image URL
  -   * @return a new FopImage object
  -   * @exception FopImageException an error occured during initialization
  -   */
  -  public AbstractFopImage(URL href) throws FopImageException {
  -    this.m_href = href;
  -    try {
  -      this.m_imageReader = ImageReaderFactory.Make(this.m_href.openStream());
  -    } catch (Exception e) {
  -      throw new FopImageException(e.getMessage());
  -    }
  -    this.m_width = this.m_imageReader.getWidth();
  -    this.m_height = this.m_imageReader.getHeight();
  -  }
  -
  -  /**
  -    * Constructor.
  -    * Construct a new FopImage object and initialize its default properties:
  -    * <UL>
  -    *  <LI>image width
  -    *  <LI>image height
  -    * </UL>
  -    * The image data isn't kept in memory.
  -    * @param href image URL
  -    *        imgReader ImageReader object
  -    * @return a new FopImage object
  -    * @exception FopImageException an error occured during initialization
  -    */
  -  public AbstractFopImage(URL href, ImageReader imgReader) {
  -    this.m_href = href;
  -    this.m_imageReader = imgReader;
  -    this.m_width = this.m_imageReader.getWidth();
  -    this.m_height = this.m_imageReader.getHeight();
  -  }
  -
  -  /**
  -   * Load image data and initialize its properties.
  -   * Subclasses need to implement this method.
  -   * @exception FopImageException an error occured during loading
  -   */
  -  abstract protected void loadImage() throws FopImageException;
  -
  -  /**
  -   * Return the image URL.
  -   * @return the image URL (as String)
  -   */
  -  public String getURL() {
  -    return this.m_href.toString();
  -  }
  -
  -  /**
  -   * Return the image width.
  -   * @return the image width
  -   * @exception FopImageException an error occured during property retriaval
  -   */
  -  public int getWidth() throws FopImageException {
  -    if (this.m_width == 0)
  -      this.loadImage();
  -
  -    return this.m_width;
  -  }
  -
  -  /**
  -   * Return the image height.
  -   * @return the image height
  -   * @exception FopImageException an error occured during property retriaval
  -   */
  -  public int getHeight() throws FopImageException {
  -    if (this.m_height == 0)
  -      this.loadImage();
  -
  -    return this.m_height;
  -  }
  -
  -  /**
  -   * Return the image color space.
  -   * @return the image color space (org.apache.fop.datatypes.ColorSpace)
  -   * @exception FopImageException an error occured during property retriaval
  -   */
  -  public ColorSpace getColorSpace() throws FopImageException {
  -    if (this.m_colorSpace == null)
  -      this.loadImage();
  -
  -    return this.m_colorSpace;
  -  }
  -
  -  /**
  -   * Return the number of bits per pixel.
  -   * @return number of bits per pixel
  -   * @exception FopImageException an error occured during property retriaval
  -   */
  -  public int getBitsPerPixel() throws FopImageException {
  -    if (this.m_bitsPerPixel == 0)
  -      this.loadImage();
  -
  -    return this.m_bitsPerPixel;
  -  }
  -
  -  /**
  -   * Return the image transparency.
  -   * @return true if the image is transparent
  -   * @exception FopImageException an error occured during property retriaval
  -   */
  -  public boolean isTransparent() throws FopImageException {
  -    return this.m_isTransparent;
  -  }
  -
  -  /**
  -   * Return the transparent color.
  -   * @return the transparent color (org.apache.fop.pdf.PDFColor)
  -   * @exception FopImageException an error occured during property retriaval
  -   */
  -  public PDFColor getTransparentColor() throws FopImageException {
  -    return this.m_transparentColor;
  -  }
  -
  -  /**
  -   * Return the image data (uncompressed).
  -   * @return the image data
  -   * @exception FopImageException an error occured during loading
  -   */
  -  public byte[] getBitmaps() throws FopImageException {
  -    if (this.m_bitmaps == null)
  -      this.loadImage();
  -
  -    return this.m_bitmaps;
  -  }
  -
  -  /**
  -   * Return the image data size (uncompressed).
  -   * @return the image data size
  -   * @exception FopImageException an error occured during loading
  -   */
  -  public int getBitmapsSize() throws FopImageException {
  -    if (this.m_bitmapsSize == 0)
  -      this.loadImage();
  -
  -    return this.m_bitmapsSize;
  -  }
  -
  -  /**
  -   * Return the original image data (compressed).
  -   * @return the original image data
  -   * @exception FopImageException an error occured during loading
  -   */
  -  public byte[] getRessourceBytes() throws FopImageException {
  -    return null;
  -  }
  -
  -  /**
  -   * Return the original image data size (compressed).
  -   * @return the original image data size
  -   * @exception FopImageException an error occured during loading
  -   */
  -  public int getRessourceBytesSize() throws FopImageException {
  -    return 0;
  -  }
  -
  -  /**
  -   * Return the original image compression type.
  -   * @return the original image compression type (org.apache.fop.pdf.PDFFilter)
  -   * @exception FopImageException an error occured during loading
  -   */
  -  public PDFFilter getPDFFilter() throws FopImageException {
  -    return null;
  -  }
  -
  -  /**
  -   * Free all ressource.
  -   */
  -  public void close() {
  -    /* For the moment, only release the bitmaps (image areas
  -       can share the same FopImage object)
  -       Thus, even if it had been called, other properties
  -       are still available.
  -       */
  -    //this.m_width = 0;
  -    //this.m_height = 0;
  -    //this.m_href = null;
  -    //this.m_colorSpace = null;
  -    //this.m_bitsPerPixel = 0;
  -    this.m_bitmaps = null;
  -    this.m_bitmapsSize = 0;
  -    //this.m_isTransparent = false;
  -    //this.m_transparentColor = null;
  -  }
  -}
  -
  +/*
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  + 4. The names "Fop" and  "Apache Software Foundation"  must not be used to
  +    endorse  or promote  products derived  from this  software without  prior
  +    written permission. For written permission, please contact
  +    apache@apache.org.
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + James Tauber <jt...@jtauber.com>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  + */
  +
  +package org.apache.fop.image;
  +
  +// Java
  +import java.util.Hashtable;
  +import java.net.URL;
  +
  +// FOP
  +import org.apache.fop.datatypes.ColorSpace;
  +import org.apache.fop.pdf.PDFColor;
  +import org.apache.fop.pdf.PDFFilter;
  +import org.apache.fop.image.analyser.ImageReaderFactory;
  +import org.apache.fop.image.analyser.ImageReader;
  +
  +/**
  + * Base class to implement the FopImage interface.
  + * @author Eric SCHAEFFER
  + * @see FopImage
  + */
  +public abstract class AbstractFopImage implements FopImage {
  +  /**
  +   * Image width (in pixel).
  +   */
  +  protected int m_width = 0;
  +  /**
  +   * Image height (in pixel).
  +   */
  +  protected int m_height = 0;
  +  /**
  +   * Image URL.
  +   */
  +  protected URL m_href = null;
  +  /**
  +   * ImageReader object (to obtain image header informations).
  +   */
  +  protected ImageReader m_imageReader = null;
  +  /**
  +   * Image color space (org.apache.fop.datatypes.ColorSpace).
  +   */
  +  protected ColorSpace m_colorSpace = null;
  +  /**
  +   * Bits per pixel.
  +   */
  +  protected int m_bitsPerPixel = 0;
  +  /**
  +   * Image data (uncompressed).
  +   */
  +  protected byte[] m_bitmaps = null;
  +  /**
  +   * Image data size.
  +   */
  +  protected int m_bitmapsSize = 0;
  +  /**
  +   * Image transparency.
  +   */
  +  protected boolean m_isTransparent = false;
  +  /**
  +   * Transparent color (org.apache.fop.pdf.PDFColor).
  +   */
  +  protected PDFColor m_transparentColor = null;
  +
  +  /**
  +   * Constructor.
  +   * Construct a new FopImage object and initialize its default properties:
  +   * <UL>
  +   *  <LI>image width
  +   *  <LI>image height
  +   * </UL>
  +   * The image data isn't kept in memory.
  +   * @param href image URL
  +   * @return a new FopImage object
  +   * @exception FopImageException an error occured during initialization
  +   */
  +  public AbstractFopImage(URL href) throws FopImageException {
  +    this.m_href = href;
  +    try {
  +      this.m_imageReader = ImageReaderFactory.Make(this.m_href.openStream());
  +    } catch (Exception e) {
  +      throw new FopImageException(e.getMessage());
  +    }
  +    this.m_width = this.m_imageReader.getWidth();
  +    this.m_height = this.m_imageReader.getHeight();
  +  }
  +
  +  /**
  +    * Constructor.
  +    * Construct a new FopImage object and initialize its default properties:
  +    * <UL>
  +    *  <LI>image width
  +    *  <LI>image height
  +    * </UL>
  +    * The image data isn't kept in memory.
  +    * @param href image URL
  +    *        imgReader ImageReader object
  +    * @return a new FopImage object
  +    * @exception FopImageException an error occured during initialization
  +    */
  +  public AbstractFopImage(URL href, ImageReader imgReader)
  +	throws FopImageException {
  +    this.m_href = href;
  +    this.m_imageReader = imgReader;
  +    this.m_width = this.m_imageReader.getWidth();
  +    this.m_height = this.m_imageReader.getHeight();
  +  }
  +
  +  /**
  +   * Load image data and initialize its properties.
  +   * Subclasses need to implement this method.
  +   * @exception FopImageException an error occured during loading
  +   */
  +  abstract protected void loadImage() throws FopImageException;
  +
  +  /**
  +   * Return the image URL.
  +   * @return the image URL (as String)
  +   */
  +  public String getURL() {
  +    return this.m_href.toString();
  +  }
  +
  +  /**
  +   * Return the image width.
  +   * @return the image width
  +   * @exception FopImageException an error occured during property retriaval
  +   */
  +  public int getWidth() throws FopImageException {
  +    if (this.m_width == 0)
  +      this.loadImage();
  +
  +    return this.m_width;
  +  }
  +
  +  /**
  +   * Return the image height.
  +   * @return the image height
  +   * @exception FopImageException an error occured during property retriaval
  +   */
  +  public int getHeight() throws FopImageException {
  +    if (this.m_height == 0)
  +      this.loadImage();
  +
  +    return this.m_height;
  +  }
  +
  +  /**
  +   * Return the image color space.
  +   * @return the image color space (org.apache.fop.datatypes.ColorSpace)
  +   * @exception FopImageException an error occured during property retriaval
  +   */
  +  public ColorSpace getColorSpace() throws FopImageException {
  +    if (this.m_colorSpace == null)
  +      this.loadImage();
  +
  +    return this.m_colorSpace;
  +  }
  +
  +  /**
  +   * Return the number of bits per pixel.
  +   * @return number of bits per pixel
  +   * @exception FopImageException an error occured during property retriaval
  +   */
  +  public int getBitsPerPixel() throws FopImageException {
  +    if (this.m_bitsPerPixel == 0)
  +      this.loadImage();
  +
  +    return this.m_bitsPerPixel;
  +  }
  +
  +  /**
  +   * Return the image transparency.
  +   * @return true if the image is transparent
  +   * @exception FopImageException an error occured during property retriaval
  +   */
  +  public boolean isTransparent() throws FopImageException {
  +    return this.m_isTransparent;
  +  }
  +
  +  /**
  +   * Return the transparent color.
  +   * @return the transparent color (org.apache.fop.pdf.PDFColor)
  +   * @exception FopImageException an error occured during property retriaval
  +   */
  +  public PDFColor getTransparentColor() throws FopImageException {
  +    return this.m_transparentColor;
  +  }
  +
  +  /**
  +   * Return the image data (uncompressed).
  +   * @return the image data
  +   * @exception FopImageException an error occured during loading
  +   */
  +  public byte[] getBitmaps() throws FopImageException {
  +    if (this.m_bitmaps == null)
  +      this.loadImage();
  +
  +    return this.m_bitmaps;
  +  }
  +
  +  /**
  +   * Return the image data size (uncompressed).
  +   * @return the image data size
  +   * @exception FopImageException an error occured during loading
  +   */
  +  public int getBitmapsSize() throws FopImageException {
  +    if (this.m_bitmapsSize == 0)
  +      this.loadImage();
  +
  +    return this.m_bitmapsSize;
  +  }
  +
  +  /**
  +   * Return the original image data (compressed).
  +   * @return the original image data
  +   * @exception FopImageException an error occured during loading
  +   */
  +  public byte[] getRessourceBytes() throws FopImageException {
  +    return null;
  +  }
  +
  +  /**
  +   * Return the original image data size (compressed).
  +   * @return the original image data size
  +   * @exception FopImageException an error occured during loading
  +   */
  +  public int getRessourceBytesSize() throws FopImageException {
  +    return 0;
  +  }
  +
  +  /**
  +   * Return the original image compression type.
  +   * @return the original image compression type (org.apache.fop.pdf.PDFFilter)
  +   * @exception FopImageException an error occured during loading
  +   */
  +  public PDFFilter getPDFFilter() throws FopImageException {
  +    return null;
  +  }
  +
  +  /**
  +   * Free all ressource.
  +   */
  +  public void close() {
  +    /* For the moment, only release the bitmaps (image areas
  +       can share the same FopImage object)
  +       Thus, even if it had been called, other properties
  +       are still available.
  +       */
  +    //this.m_width = 0;
  +    //this.m_height = 0;
  +    //this.m_href = null;
  +    //this.m_colorSpace = null;
  +    //this.m_bitsPerPixel = 0;
  +    this.m_bitmaps = null;
  +    this.m_bitmapsSize = 0;
  +    //this.m_isTransparent = false;
  +    //this.m_transparentColor = null;
  +  }
  +}
  +