aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/image
diff options
context:
space:
mode:
authorKeiron Liddle <keiron@apache.org>2002-06-27 11:45:55 +0000
committerKeiron Liddle <keiron@apache.org>2002-06-27 11:45:55 +0000
commitd3b6621df5e65468d8fa65ad35e07e316635e97c (patch)
tree2e884f12b1b33cbb472a8cb8be218de5e5fbd95e /src/org/apache/fop/image
parente86556e4f1a88428e437e805774090f40ca14ccb (diff)
downloadxmlgraphics-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.java35
-rw-r--r--src/org/apache/fop/image/BmpImage.java4
-rw-r--r--src/org/apache/fop/image/EPSImage.java1
-rw-r--r--src/org/apache/fop/image/FopImage.java10
-rw-r--r--src/org/apache/fop/image/GifImage.java4
-rw-r--r--src/org/apache/fop/image/JAIImage.java5
-rw-r--r--src/org/apache/fop/image/JimiImage.java4
-rw-r--r--src/org/apache/fop/image/JpegImage.java28
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);
}