瀏覽代碼

Updated XGC with r1358258 - consolidated some GraphicsConfiguration classes so as to remove duplicated code


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1358259 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-2_0
Mehdi Houshmand 12 年之前
父節點
當前提交
3325a6c6c4

二進制
lib/xmlgraphics-commons-1.5svn.jar 查看文件


+ 3
- 2
src/java/org/apache/fop/afp/AFPGraphics2D.java 查看文件

@@ -26,6 +26,7 @@ import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Paint;
@@ -52,13 +53,13 @@ import org.apache.xmlgraphics.image.loader.ImageSize;
import org.apache.xmlgraphics.image.loader.impl.ImageRendered;
import org.apache.xmlgraphics.java2d.AbstractGraphics2D;
import org.apache.xmlgraphics.java2d.GraphicContext;
import org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparency;
import org.apache.xmlgraphics.java2d.StrokingTextHandler;
import org.apache.xmlgraphics.java2d.TextHandler;
import org.apache.xmlgraphics.util.UnitConv;

import org.apache.fop.afp.goca.GraphicsSetLineType;
import org.apache.fop.afp.modca.GraphicsObject;
import org.apache.fop.afp.svg.AFPGraphicsConfiguration;
import org.apache.fop.afp.util.CubicBezierApproximator;
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.render.afp.AFPImageHandlerRenderedImage;
@@ -111,7 +112,7 @@ public class AFPGraphics2D extends AbstractGraphics2D implements NativeImageHand
private AFPPaintingState paintingState = null;

/** AFP graphics configuration */
private final AFPGraphicsConfiguration graphicsConfig = new AFPGraphicsConfiguration();
private final GraphicsConfigurationWithTransparency graphicsConfig = new GraphicsConfigurationWithTransparency();

/** The AFP FontInfo */
private FontInfo fontInfo;

+ 0
- 152
src/java/org/apache/fop/afp/svg/AFPGraphicsConfiguration.java 查看文件

@@ -1,152 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* $Id$ */

package org.apache.fop.afp.svg;

import java.awt.GraphicsDevice;
import java.awt.Rectangle;
import java.awt.Transparency;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.apache.fop.svg.GraphicsConfiguration;

/**
* Our implementation of the class that returns information about
* roughly what we can handle and want to see (alpha for example).
*/
public class AFPGraphicsConfiguration extends GraphicsConfiguration {
// We use this to get a good colormodel..
private static final BufferedImage BI_WITH_ALPHA
= new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
// We use this to get a good colormodel..
private static final BufferedImage BI_WITHOUT_ALPHA
= new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);

/**
* Construct a buffered image with an alpha channel, unless
* transparencty is OPAQUE (no alpha at all).
*
* @param width the width of the image
* @param height the height of the image
* @param transparency the alpha value of the image
* @return the new buffered image
*/
public BufferedImage createCompatibleImage(int width, int height,
int transparency) {
if (transparency == Transparency.OPAQUE) {
return new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
} else {
return new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
}
}

/**
* Construct a buffered image with an alpha channel.
*
* @param width the width of the image
* @param height the height of the image
* @return the new buffered image
*/
public BufferedImage createCompatibleImage(int width, int height) {
return new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
}

/**
* TODO: This should return the page bounds in Pts,
* I couldn't figure out how to get this for the current
* page (this still works for now,
* but it should be fixed...).
*
* @return the bounds of the page
*/
public Rectangle getBounds() {
return null;
}

/**
* Return a good default color model for this 'device'.
* @return the colour model for the configuration
*/
public ColorModel getColorModel() {
return BI_WITH_ALPHA.getColorModel();
}

/**
* Return a good color model given <code>transparency</code>
*
* @param transparency the alpha value for the colour model
* @return the colour model for the configuration
*/
public ColorModel getColorModel(int transparency) {
if (transparency == Transparency.OPAQUE) {
return BI_WITHOUT_ALPHA.getColorModel();
} else {
return BI_WITH_ALPHA.getColorModel();
}
}

private static final Log LOG
= LogFactory.getLog(AFPGraphicsConfiguration.class);

private AffineTransform defaultTransform = null;
private AffineTransform normalizingTransform = null;
private final GraphicsDevice graphicsDevice = new AFPGraphicsDevice(this);;

/**
* The default transform (1:1).
*
* @return the default transform for the configuration
*/
public AffineTransform getDefaultTransform() {
LOG.debug("getDefaultTransform()");
if (defaultTransform == null) {
defaultTransform = new AffineTransform();
}
return defaultTransform;
}

/**
* The normalizing transform (1:1) (since we currently
* render images at 72dpi, which we might want to change
* in the future).
*
* @return the normalizing transform for the configuration
*/
public AffineTransform getNormalizingTransform() {
LOG.debug("getNormalizingTransform()");
if (normalizingTransform == null) {
normalizingTransform = new AffineTransform(2, 0, 0, 2, 0, 0);
}
return normalizingTransform;
}

/** {@inheritDoc} */
public GraphicsDevice getDevice() {
LOG.debug("getDevice()");
return graphicsDevice;
}
}

+ 0
- 80
src/java/org/apache/fop/afp/svg/AFPGraphicsDevice.java 查看文件

@@ -1,80 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* $Id$ */

package org.apache.fop.afp.svg;

import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;

/**
* This implements the GraphicsDevice interface as appropriate for
* an AFPGraphics2D.
*/
public class AFPGraphicsDevice extends GraphicsDevice {

/**
* The Graphics Config that created us...
*/
protected GraphicsConfiguration gc;

/**
* Create a new AF{ graphics device.
*
* @param gc The graphics configuration we should reference
*/
public AFPGraphicsDevice(AFPGraphicsConfiguration gc) {
this.gc = gc;
}

/**
* Return an array of our one GraphicsConfig
*
* @return an array containing the one graphics configuration
*/
public GraphicsConfiguration[] getConfigurations() {
return new GraphicsConfiguration[] {gc};
}

/**
* Return out sole GraphicsConfig.
*
* @return the graphics configuration that created this object
*/
public GraphicsConfiguration getDefaultConfiguration() {
return this.gc;
}

/**
* Generate an IdString..
*
* @return the ID string for this device, uses toString
*/
public String getIDstring() {
return toString();
}

/**
* Let the caller know that we are "a printer"
*
* @return the type which is always printer
*/
public int getType() {
return GraphicsDevice.TYPE_PRINTER;
}
}

+ 2
- 1
src/java/org/apache/fop/svg/PDFGraphics2D.java 查看文件

@@ -68,6 +68,7 @@ import org.apache.xmlgraphics.image.loader.impl.ImageRawJPEG;
import org.apache.xmlgraphics.image.loader.impl.ImageRendered;
import org.apache.xmlgraphics.java2d.AbstractGraphics2D;
import org.apache.xmlgraphics.java2d.GraphicContext;
import org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparency;

import org.apache.fop.fonts.Font;
import org.apache.fop.fonts.FontInfo;
@@ -1765,7 +1766,7 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
*/
@Override
public GraphicsConfiguration getDeviceConfiguration() {
return new PDFGraphicsConfiguration();
return new GraphicsConfigurationWithTransparency();
}

/**

Loading…
取消
儲存