/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.image.filter;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageProducer;
import com.enonic.cms.framework.util.ImageHelper;
public final class AwtImageFilter
implements ImageFilter
{
private final java.awt.image.ImageFilter filter;
public AwtImageFilter( java.awt.image.ImageFilter filter )
{
this.filter = filter;
}
public BufferedImage filter( BufferedImage source )
{
ImageProducer producer = new FilteredImageSource( source.getSource(), this.filter );
return convert( Toolkit.getDefaultToolkit().createImage( producer ) );
}
private BufferedImage convert( Image image )
{
BufferedImage bufferedImage = ImageHelper.createImage( image.getWidth( null ), image.getHeight( null ), true );
Graphics2D g = bufferedImage.createGraphics();
g.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON );
g.drawImage( image, 0, 0, null );
g.dispose();
return bufferedImage;
}
}