图片缩放的Java类详解编程语言

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"; 
    } 
 
}

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10948.html

(0)
上一篇 2021年7月19日 10:32
下一篇 2021年7月19日 10:33

相关推荐

发表回复

登录后才能评论