图片缩放的Java类

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;

import com.jhlabs.image.AbstractBufferedImageOp;

/**
 * Scales an image using the area-averaging algorithm, which can't be done with AffineTransformOp.
 */
public class MyScaleFilter extends AbstractBufferedImageOp {

    private int width;
    private int height;

    /**
     * Construct a ScaleFilter.
     */
    public MyScaleFilter() {
        this(32, 32);
    }

    /**
     * Construct a ScaleFilter.
     * @param width the width to scale to
     * @param height the height to scale to
     */
    public MyScaleFilter( int width, int height ) {
        this.width = width;
        this.height = height;
    }

    public BufferedImage filter( BufferedImage src, BufferedImage dst ) {
        if ( dst == null ) {
            ColorModel dstCM = src.getColorModel();
            dst = new BufferedImage(dstCM, 
                dstCM.createCompatibleWritableRaster( width, height ), 
                dstCM.isAlphaPremultiplied(), null);
        }

        Image scaleImage = src.getScaledInstance( width, height, Image.SCALE_SMOOTH );
        Graphics2D g = dst.createGraphics();
        g.drawImage( scaleImage, 0, 0, width, height, null );
        g.dispose();

        return dst;
    }

    public String toString() {
        return "Distort/Scale";
    }

}

标签: isp

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:java实现截屏程序

下一篇:利用注解将JDBC结果集转成Java对象