merged 1.1 branch into head
[mir.git] / source / mircoders / media / ImageProcessor.java
diff --git a/source/mircoders/media/ImageProcessor.java b/source/mircoders/media/ImageProcessor.java
deleted file mode 100755 (executable)
index 2c7877e..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (C) 2001, 2002 The Mir-coders group
- *
- * This file is part of Mir.
- *
- * Mir is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Mir is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Mir; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License,
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
- * (or with modified versions of the above that use the same license as the above),
- * and distribute linked combinations including the two.  You must obey the
- * GNU General Public License in all respects for all of the code used other than
- * the above mentioned libraries.  If you modify this file, you may extend this
- * exception to your version of the file, but you are not obligated to do so.
- * If you do not wish to do so, delete this exception statement from your version.
- */
-
-package mircoders.media;
-
-import java.awt.RenderingHints;
-import java.awt.image.ColorModel;
-import java.awt.image.DataBuffer;
-import java.awt.image.PixelInterleavedSampleModel;
-import java.awt.image.RenderedImage;
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-import javax.media.jai.ImageLayout;
-import javax.media.jai.InterpolationBilinear;
-import javax.media.jai.JAI;
-import javax.media.jai.ParameterBlockJAI;
-
-import mir.log.LoggerWrapper;
-
-import com.sun.media.jai.codec.ByteArraySeekableStream;
-import com.sun.media.jai.codec.FileSeekableStream;
-import com.sun.media.jai.codec.SeekableStream;
-
-/**
- *
- * <p>Title: Image processor</p>
- * <p>Description: Temporary image processor class. (Made for the immediate needs of CMI brasil.
- *                 Will become obsolete when mh's media handler rewrite is finished. </p>
- * @author Zapata
- * @version 1.0
- */
-
-public class ImageProcessor {
-  static final LoggerWrapper logger = new LoggerWrapper("media");
-
-  private RenderedImage image;
-  private RenderedImage scaledImage;
-
-  public ImageProcessor(RenderedImage anImage) throws IOException {
-    image = anImage;
-    scaledImage = anImage;
-  }
-
-  public ImageProcessor(SeekableStream anImageStream) throws IOException {
-    RenderedImage tempImage = JAI.create("stream", anImageStream);
-    ParameterBlockJAI params = new ParameterBlockJAI("format");
-    int bands[];
-    int nrComponents;
-
-
-    params.addSource(tempImage);
-    params.setParameter("dataType", DataBuffer.TYPE_BYTE);
-
-    ImageLayout layout = new ImageLayout();
-    nrComponents = tempImage.getColorModel().getNumColorComponents();
-
-    bands = new int[nrComponents];
-    for (int i=0; i<nrComponents; i++)
-      bands[i]=i;
-
-    layout.setColorModel(ColorModel.getRGBdefault());
-    layout.setSampleModel(
-        new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE,
-        tempImage.getWidth(),
-        tempImage.getHeight(),
-        nrComponents,
-        nrComponents*tempImage.getWidth(),
-        bands));
-
-    RenderingHints hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout);
-
-    image = JAI.create("format", params, hints);
-
-    scaledImage = image;
-  }
-
-  public ImageProcessor(File aFile) throws IOException {
-    this(new FileSeekableStream(aFile));
-  }
-
-  public ImageProcessor(byte[] anImageData) throws IOException {
-    this(new ByteArraySeekableStream(anImageData));
-  }
-
-  public void descaleImage(int aMaxSize) throws java.io.IOException {
-    descaleImage(aMaxSize, 0);
-  }
-
-  public void descaleImage(int aMaxSize, float aMinDescale) throws java.io.IOException {
-    descaleImage(aMaxSize, aMaxSize, aMinDescale, 0);
-  }
-
-  public void descaleImage(int aMaxSize, int aMinResize) throws java.io.IOException {
-    descaleImage(aMaxSize, aMaxSize, 0, aMinResize);
-  }
-
-  public void descaleImage(int aMaxSize, float aMinDescale, int aMinResize) throws java.io.IOException {
-    descaleImage(aMaxSize, aMaxSize, aMinDescale, aMinResize);
-  }
-
-  /**
-   *
-   * Resizes an image to fit inside <code>aMaxWidth</code> and <code>aMaxHeight</code>, provided
-   *    this requires at least <code>aMinResize</code> pixels will be removed from either the width or
-   *    the height
-   *
-   * @param aMaxWidth
-   * @param aMaxHeight
-   * @param aMinDescale
-   * @param aMinResize
-   * @throws java.io.IOException
-   */
-  public void descaleImage(int aMaxWidth, int aMaxHeight, float aMinDescale, int aMinResize) throws java.io.IOException {
-    float scale;
-    scaledImage = image;
-
-    if ((aMaxWidth>0 && image.getWidth()>aMaxWidth+aMinResize-1) || (aMaxHeight>0 && image.getHeight()>aMaxHeight+aMinResize-1))
-    {
-      logger.info("Scaling image");
-
-      scale=1;
-
-      if (aMaxWidth>0 && image.getWidth()>aMaxWidth) {
-        scale = Math.min(scale, (float) aMaxWidth / (float) image.getWidth());
-      }
-      if (aMaxHeight>0 && image.getHeight()>aMaxHeight) {
-        scale = Math.min(scale, (float) aMaxHeight / (float) image.getHeight());
-      }
-
-      if (1-scale>aMinDescale) {
-        scaleImage(scale);
-      }
-    }
-  }
-
-  public void scaleImage(float aScalingFactor) throws java.io.IOException {
-    ParameterBlockJAI params = new ParameterBlockJAI("scale");
-    params.addSource(image);
-
-    params.setParameter("xScale", aScalingFactor);
-    params.setParameter("yScale", aScalingFactor);
-    params.setParameter("xTrans", 0.0F);
-    params.setParameter("yTrans", 0.0F);
-    params.setParameter("interpolation", new InterpolationBilinear());
-    scaledImage = JAI.create("scale", params);
-  }
-
-  public int getWidth() {
-    return image.getWidth();
-  }
-
-  public int getHeight() {
-    return image.getHeight();
-  }
-
-  public int getScaledWidth() {
-    return scaledImage.getWidth();
-  }
-
-  public int getScaledHeight() {
-    return scaledImage.getHeight();
-  }
-
-  public void writeScaledData(OutputStream aStream, String anImageType) {
-    JAI.create("encode", scaledImage, aStream, anImageType, null);
-  }
-
-  public byte[] getScaledData(String anImageType) {
-    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-    writeScaledData(outputStream, anImageType);
-    return outputStream.toByteArray();
-  }
-
-  public void writeScaledData(File aFile, String anImageType) throws IOException {
-    writeScaledData(new BufferedOutputStream(new FileOutputStream(aFile),8192), anImageType);
-  }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-