diff options
author | Keiron Liddle <keiron@apache.org> | 2002-06-27 11:45:55 +0000 |
---|---|---|
committer | Keiron Liddle <keiron@apache.org> | 2002-06-27 11:45:55 +0000 |
commit | d3b6621df5e65468d8fa65ad35e07e316635e97c (patch) | |
tree | 2e884f12b1b33cbb472a8cb8be218de5e5fbd95e /src/org/apache/fop/image | |
parent | e86556e4f1a88428e437e805774090f40ca14ccb (diff) | |
download | xmlgraphics-fop-d3b6621df5e65468d8fa65ad35e07e316635e97c.tar.gz xmlgraphics-fop-d3b6621df5e65468d8fa65ad35e07e316635e97c.zip |
added transparency for images
made pdf package more self contained
started on patterns/gradients for svg
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194926 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/org/apache/fop/image')
-rw-r--r-- | src/org/apache/fop/image/AbstractFopImage.java | 35 | ||||
-rw-r--r-- | src/org/apache/fop/image/BmpImage.java | 4 | ||||
-rw-r--r-- | src/org/apache/fop/image/EPSImage.java | 1 | ||||
-rw-r--r-- | src/org/apache/fop/image/FopImage.java | 10 | ||||
-rw-r--r-- | src/org/apache/fop/image/GifImage.java | 4 | ||||
-rw-r--r-- | src/org/apache/fop/image/JAIImage.java | 5 | ||||
-rw-r--r-- | src/org/apache/fop/image/JimiImage.java | 4 | ||||
-rw-r--r-- | src/org/apache/fop/image/JpegImage.java | 28 |
8 files changed, 44 insertions, 47 deletions
diff --git a/src/org/apache/fop/image/AbstractFopImage.java b/src/org/apache/fop/image/AbstractFopImage.java index 9b3a91d73..2b1dec82d 100644 --- a/src/org/apache/fop/image/AbstractFopImage.java +++ b/src/org/apache/fop/image/AbstractFopImage.java @@ -9,9 +9,10 @@ package org.apache.fop.image; // Java import java.net.URL; +import java.awt.color.ColorSpace; +import java.awt.color.ICC_Profile; // 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; @@ -78,12 +79,6 @@ public abstract class AbstractFopImage implements FopImage { protected PDFColor m_transparentColor = null; /** - * Image compression type. - * Added by Eric Dalquist - */ - protected PDFFilter m_compressionType = null; - - /** * Constructor. * Construct a new FopImage object and initialize its default properties: * <UL> @@ -172,6 +167,10 @@ public abstract class AbstractFopImage implements FopImage { return this.m_colorSpace; } + public ICC_Profile getICCProfile() { + return null; + } + /** * Return the number of bits per pixel. * @return number of bits per pixel @@ -188,6 +187,14 @@ public abstract class AbstractFopImage implements FopImage { return this.m_isTransparent; } + public boolean hasSoftMask() { + return false; + } + + public byte[] getSoftMask() { + return null; + } + /** * Return the transparent color. * @return the transparent color (org.apache.fop.pdf.PDFColor) @@ -228,19 +235,5 @@ public abstract class AbstractFopImage implements FopImage { return 0; } - /** - * Return the original image compression type. - * @return the original image compression type (org.apache.fop.pdf.PDFFilter) - */ - public PDFFilter getPDFFilter() { - - /* - * Added by Eric Dalquist - * Using the bitsPerPixel var as our flag since many imges will - * have a null m_compressionType even after being loaded - */ - return m_compressionType; - } - } diff --git a/src/org/apache/fop/image/BmpImage.java b/src/org/apache/fop/image/BmpImage.java index d58fe94e9..26cd3c5a5 100644 --- a/src/org/apache/fop/image/BmpImage.java +++ b/src/org/apache/fop/image/BmpImage.java @@ -18,9 +18,9 @@ package org.apache.fop.image; import java.net.URL; import java.io.InputStream; import java.io.IOException; +import java.awt.color.ColorSpace; // FOP -import org.apache.fop.datatypes.ColorSpace; import org.apache.fop.pdf.PDFColor; import org.apache.fop.image.analyser.ImageReader; import org.apache.fop.fo.FOUserAgent; @@ -86,7 +86,7 @@ public class BmpImage extends AbstractFopImage { int imagestart = headermap[10] + headermap[11] * 256 + headermap[12] * 256 * 256 + headermap[13] * 256 * 256 * 256; this.m_bitsPerPixel = headermap[28]; - this.m_colorSpace = new ColorSpace(ColorSpace.DEVICE_RGB); + this.m_colorSpace = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB); int bytes = 0; if (this.m_bitsPerPixel == 1) bytes = (this.m_width + 7) / 8; diff --git a/src/org/apache/fop/image/EPSImage.java b/src/org/apache/fop/image/EPSImage.java index bb66eb116..3867d2a20 100644 --- a/src/org/apache/fop/image/EPSImage.java +++ b/src/org/apache/fop/image/EPSImage.java @@ -15,7 +15,6 @@ import java.io.IOException; // FOP import org.apache.fop.apps.Driver; -import org.apache.fop.datatypes.ColorSpace; import org.apache.fop.pdf.PDFColor; import org.apache.fop.image.analyser.ImageReader; import org.apache.fop.image.analyser.EPSReader; diff --git a/src/org/apache/fop/image/FopImage.java b/src/org/apache/fop/image/FopImage.java index d7b60a62c..a09272a2a 100644 --- a/src/org/apache/fop/image/FopImage.java +++ b/src/org/apache/fop/image/FopImage.java @@ -11,10 +11,10 @@ package org.apache.fop.image; import java.io.InputStream; +import java.awt.color.ColorSpace; +import java.awt.color.ICC_Profile; -import org.apache.fop.datatypes.ColorSpace; import org.apache.fop.pdf.PDFColor; -import org.apache.fop.pdf.PDFFilter; import org.apache.fop.fo.FOUserAgent; public interface FopImage { @@ -39,8 +39,8 @@ public interface FopImage { public int getWidth(); public int getHeight(); - // DeviceGray, DeviceRGB, or DeviceCMYK public ColorSpace getColorSpace(); + public ICC_Profile getICCProfile(); // bits per pixel public int getBitsPerPixel(); @@ -48,6 +48,8 @@ public interface FopImage { // For transparent images public boolean isTransparent(); public PDFColor getTransparentColor(); + public boolean hasSoftMask(); + public byte[] getSoftMask(); // get the image bytes, and bytes properties @@ -61,8 +63,6 @@ public interface FopImage { // should be changed... public byte[] getRessourceBytes(); public int getRessourceBytesSize(); - // return null if no corresponding PDFFilter - public PDFFilter getPDFFilter(); public static class ImageInfo { public InputStream stream; diff --git a/src/org/apache/fop/image/GifImage.java b/src/org/apache/fop/image/GifImage.java index dc27dbe21..32495c0e0 100644 --- a/src/org/apache/fop/image/GifImage.java +++ b/src/org/apache/fop/image/GifImage.java @@ -12,9 +12,9 @@ import java.net.URL; import java.awt.image.ImageProducer; import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; +import java.awt.color.ColorSpace; // FOP -import org.apache.fop.datatypes.ColorSpace; import org.apache.fop.pdf.PDFColor; import org.apache.fop.image.analyser.ImageReader; import org.apache.fop.fo.FOUserAgent; @@ -58,7 +58,7 @@ public class GifImage extends AbstractFopImage { ColorModel cm = consumer.getColorModel(); this.m_bitsPerPixel = 8; // this.m_bitsPerPixel = cm.getPixelSize(); - this.m_colorSpace = new ColorSpace(ColorSpace.DEVICE_RGB); + this.m_colorSpace = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB); if (cm.hasAlpha()) { int transparencyType = cm.getTransparency(); // java.awt.Transparency. BITMASK or OPAQUE or TRANSLUCENT if (transparencyType == java.awt.Transparency.OPAQUE) { diff --git a/src/org/apache/fop/image/JAIImage.java b/src/org/apache/fop/image/JAIImage.java index 54c288e2f..4d2f25561 100644 --- a/src/org/apache/fop/image/JAIImage.java +++ b/src/org/apache/fop/image/JAIImage.java @@ -16,14 +16,15 @@ import java.io.BufferedInputStream; import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; import java.awt.image.BufferedImage; +import java.awt.color.ColorSpace; // JAI import javax.media.jai.JAI; import javax.media.jai.RenderedOp; // Sun codec import com.sun.media.jai.codec.FileCacheSeekableStream; + // FOP -import org.apache.fop.datatypes.ColorSpace; import org.apache.fop.pdf.PDFColor; import org.apache.fop.image.analyser.ImageReader; @@ -59,7 +60,7 @@ public class JAIImage extends AbstractFopImage { ColorModel cm = imageOp.getColorModel(); this.m_bitsPerPixel = 8; // this.m_bitsPerPixel = cm.getPixelSize(); - this.m_colorSpace = new ColorSpace(ColorSpace.DEVICE_RGB); + this.m_colorSpace = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB); BufferedImage imageData = imageOp.getAsBufferedImage(); int[] tmpMap = imageData.getRGB(0, 0, this.m_width, diff --git a/src/org/apache/fop/image/JimiImage.java b/src/org/apache/fop/image/JimiImage.java index 6c6eb6b64..a4b3113b5 100644 --- a/src/org/apache/fop/image/JimiImage.java +++ b/src/org/apache/fop/image/JimiImage.java @@ -12,12 +12,12 @@ import java.net.URL; import java.awt.image.ImageProducer; import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; +import java.awt.color.ColorSpace; // Jimi import com.sun.jimi.core.*; // FOP -import org.apache.fop.datatypes.ColorSpace; import org.apache.fop.pdf.PDFColor; import org.apache.fop.image.analyser.ImageReader; @@ -63,7 +63,7 @@ public class JimiImage extends AbstractFopImage { ColorModel cm = consumer.getColorModel(); this.m_bitsPerPixel = 8; // this.m_bitsPerPixel = cm.getPixelSize(); - this.m_colorSpace = new ColorSpace(ColorSpace.DEVICE_RGB); + this.m_colorSpace = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB); if (cm.hasAlpha()) { int transparencyType = cm.getTransparency(); // java.awt.Transparency. BITMASK or OPAQUE or TRANSLUCENT if (transparencyType == java.awt.Transparency.OPAQUE) { diff --git a/src/org/apache/fop/image/JpegImage.java b/src/org/apache/fop/image/JpegImage.java index 7e3b756dd..f1f64919e 100644 --- a/src/org/apache/fop/image/JpegImage.java +++ b/src/org/apache/fop/image/JpegImage.java @@ -14,9 +14,11 @@ import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; import java.io.ByteArrayOutputStream; import java.io.InputStream; +import java.awt.color.ColorSpace; +import java.awt.color.ICC_Profile; +import java.awt.color.ICC_ColorSpace; // FOP -import org.apache.fop.datatypes.ColorSpace; import org.apache.fop.pdf.PDFColor; import org.apache.fop.pdf.DCTFilter; import org.apache.fop.image.analyser.ImageReader; @@ -29,6 +31,7 @@ import org.apache.fop.fo.FOUserAgent; * @see FopImage */ public class JpegImage extends AbstractFopImage { + ICC_Profile iccProfile = null; boolean found_icc_profile = false; boolean found_dimensions = false; @@ -40,15 +43,11 @@ public class JpegImage extends AbstractFopImage { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream iccStream = new ByteArrayOutputStream(); InputStream inStream; - this.m_colorSpace = new ColorSpace(ColorSpace.DEVICE_UNKNOWN); byte[] readBuf = new byte[4096]; int bytes_read; int index = 0; boolean cont = true; - this.m_compressionType = new DCTFilter(); - this.m_compressionType.setApplied(true); - try { inStream = this.m_href.openStream(); @@ -86,14 +85,15 @@ public class JpegImage extends AbstractFopImage { this.m_bitmaps[index + 8]); if (this.m_bitmaps[index + 9] == 1) { - this.m_colorSpace.setColorSpace( - ColorSpace.DEVICE_GRAY); + this.m_colorSpace = ColorSpace.getInstance( + ColorSpace.CS_GRAY); } else if (this.m_bitmaps[index + 9] == 3) { - this.m_colorSpace.setColorSpace( - ColorSpace.DEVICE_RGB); + this.m_colorSpace = ColorSpace.getInstance( + ColorSpace.CS_LINEAR_RGB); } else if (this.m_bitmaps[index + 9] == 4) { - this.m_colorSpace.setColorSpace( - ColorSpace.DEVICE_CMYK); + // howto create CMYK color space + this.m_colorSpace = ColorSpace.getInstance( + ColorSpace.CS_CIEXYZ); } found_dimensions = true; @@ -152,11 +152,15 @@ public class JpegImage extends AbstractFopImage { e.getMessage(), e); return false; } - this.m_colorSpace.setICCProfile(iccStream.toByteArray()); + iccProfile = ICC_Profile.getInstance(iccStream.toByteArray()); } return true; } + public ICC_Profile getICCProfile() { + return iccProfile; + } + private int calcBytes(byte bOne, byte bTwo) { return (uByte(bOne) * 256) + uByte(bTwo); } |