JAVA图像缩放处理.doc

JAVA图像缩放处理.doc

ID:49615084

大小:58.27 KB

页数:17页

时间:2020-03-02

JAVA图像缩放处理.doc_第1页
JAVA图像缩放处理.doc_第2页
JAVA图像缩放处理.doc_第3页
JAVA图像缩放处理.doc_第4页
JAVA图像缩放处理.doc_第5页
资源描述:

《JAVA图像缩放处理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JAVA图像缩放处理今天在网上看到了一篇关于JAVA图像处理的文章,博主贴出了一个处理类:特点是高品质缩小,具体代码如下:import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import javax.imageio.ImageIO;public class ImageScale {    private int width;    private int height;

2、    private int scaleWidth;    double support = (double) 3.0;    double[] contrib;    double[] normContrib;    double[] tmpContrib;    int startContrib, stopContrib;    int nDots;    int nHalfDots;    public BufferedImage imageZoomOut(BufferedImage srcBufferImage, int w, int

3、 h, boolean lockScale) {        width = srcBufferImage.getWidth();        height = srcBufferImage.getHeight();        scaleWidth = w;        if (lockScale) {            h = w * height / width;        }        if (DetermineResultSize(w, h) == 1) {            return srcBufferI

4、mage;        }        CalContrib();        BufferedImage pbOut = HorizontalFiltering(srcBufferImage, w);        BufferedImage pbFinalOut = VerticalFiltering(pbOut, h);        return pbFinalOut;    }    /** *//**     * 决定图像尺寸     */    private int DetermineResultSize(int w, i

5、nt h) {        double scaleH, scaleV;        scaleH = (double) w / (double) width;        scaleV = (double) h / (double) height;        // 需要判断一下scaleH,scaleV,不做放大操作        if (scaleH >= 1.0 && scaleV >= 1.0) {            return 1;        }        return 0;    } // end of De

6、termineResultSize()    private double Lanczos(int i, int inWidth, int outWidth, double Support) {        double x;        x = (double) i * (double) outWidth / (double) inWidth;        return Math.sin(x * Math.PI) / (x * Math.PI) * Math.sin(x * Math.PI / Support) / (x * Math.

7、PI / Support);    } // end of Lanczos()    //    // Assumption: same horizontal and vertical scaling factor    //    private void CalContrib() {        nHalfDots = (int) ((double) width * support / (double) scaleWidth);        nDots = nHalfDots * 2 + 1;        try {         

8、   contrib = new double[nDots];            normContrib = new double[nDots];

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。