From f2eb91e85db2443a2930d554a2e075c9fffe35f1 Mon Sep 17 00:00:00 2001 From: zapata Date: Tue, 29 Apr 2003 22:09:30 +0000 Subject: [PATCH] fix for b&w jpegs --- source/mircoders/media/ImageProcessor.java | 49 ++++++++++++++++++------------ 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/source/mircoders/media/ImageProcessor.java b/source/mircoders/media/ImageProcessor.java index 0b152a75..22b46096 100755 --- a/source/mircoders/media/ImageProcessor.java +++ b/source/mircoders/media/ImageProcessor.java @@ -35,21 +35,23 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; - -import javax.media.jai.InterpolationBicubic; -import javax.media.jai.*; +import javax.media.jai.ImageLayout; +import javax.media.jai.InterpolationBilinear; +import javax.media.jai.JAI; import javax.media.jai.ParameterBlockJAI; import javax.media.jai.PlanarImage; -import java.awt.image.*; -import java.awt.*; - -import mir.log.LoggerWrapper; +import java.awt.RenderingHints; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.PixelInterleavedSampleModel; import com.sun.media.jai.codec.ByteArraySeekableStream; import com.sun.media.jai.codec.FileSeekableStream; import com.sun.media.jai.codec.SeekableStream; +import mir.log.LoggerWrapper; + /** * *

Title: Image processor

@@ -72,21 +74,36 @@ public class ImageProcessor { public ImageProcessor(SeekableStream anImageStream) throws IOException { PlanarImage tempImage = JAI.create("stream", anImageStream); + ParameterBlockJAI params = new ParameterBlockJAI("format"); + int bands[]; + int nrComponents; - ParameterBlockJAI params = new ParameterBlockJAI("format"); params.addSource(tempImage); params.setParameter("dataType", DataBuffer.TYPE_BYTE); ImageLayout layout = new ImageLayout(); + nrComponents = tempImage.getColorModel().getNumColorComponents(); + +/* System.out.println("blaat sample model = " + tempImage.getSampleModel().toString()); + System.out.println("blaat color model = " + tempImage.getColorModel().toString()); + System.out.println("blaat nr color components = " + tempImage.getColorModel().getNumColorComponents()); + System.out.println("blaat nr components = " + tempImage.getColorModel().getNumComponents()); + */ + bands = new int[nrComponents]; + for (int i=0; i