blob: 35494b865b7ea4032a150f9eca4a6e9fff690c1b [file] [log] [blame]
/*
* 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.
*/
package org.apache.xmlgraphics.java2d;
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;
/**
* An implementation of {@link java.awt.GraphicsConfiguration} that does not support transparencies
* (alpha channels).
*/
public class GraphicsConfigurationWithoutTransparency extends AbstractGraphicsConfiguration {
private static final Log LOG = LogFactory.getLog(GraphicsConfigurationWithoutTransparency.class);
// We use this to get a good colormodel..
private static final BufferedImage BI_WITHOUT_ALPHA =
new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
private final GraphicsConfigurationWithTransparency defaultDelegate = new GraphicsConfigurationWithTransparency();
@Override
public GraphicsDevice getDevice() {
return new GenericGraphicsDevice(this);
}
@Override
public BufferedImage createCompatibleImage(int width, int height) {
return defaultDelegate.createCompatibleImage(width, height, Transparency.OPAQUE);
}
@Override
public BufferedImage createCompatibleImage(int width, int height, int transparency) {
if (transparency != Transparency.OPAQUE) {
LOG.warn("Does not support transparencies (alpha channels) in images");
}
return defaultDelegate.createCompatibleImage(width, height, Transparency.OPAQUE);
}
@Override
public ColorModel getColorModel() {
return BI_WITHOUT_ALPHA.getColorModel();
}
@Override
public ColorModel getColorModel(int transparency) {
if (transparency == Transparency.OPAQUE) {
LOG.warn("Does not support transparencies (alpha channels) in images");
}
return getColorModel();
}
@Override
public AffineTransform getDefaultTransform() {
return defaultDelegate.getDefaultTransform();
}
@Override
public AffineTransform getNormalizingTransform() {
return defaultDelegate.getNormalizingTransform();
}
@Override
public Rectangle getBounds() {
return new Rectangle();
}
}