zoukankan      html  css  js  c++  java
  • 自定义高度宽度缩小图片

    直接上代码:

    package com.henu.test;
    
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    
    public class ImgTest {
    
        public static void createImgThumbnail(String imgSrc, int thumbWidth,
                int thumbHeight, String outFilePath) throws InterruptedException,
                IOException {
            File imageFile = new File(imgSrc);
            BufferedImage image = ImageIO.read(imageFile);
            Integer width = image.getWidth();
            Integer height = image.getHeight();
            double i = (double) width / (double) height;
            double j = (double) thumbWidth / (double) thumbHeight;
            int[] d = new int[2];
            int x = 0;
            int y = 0;
            if (i > j) {
                d[1] = thumbHeight;
                d[0] = (int) (thumbHeight * i);
                y = 0;
                x = (d[0] - thumbWidth) / 2;
            } else {
                d[0] = thumbWidth;
                d[1] = (int) (thumbWidth / i);
                x = 0;
                y = (d[1] - thumbHeight) / 2;
            }
            File outFile = new File(outFilePath);
            if (!outFile.getParentFile().exists()) {
                outFile.getParentFile().mkdirs();
            }
    
            /* 等比例缩放 */
            BufferedImage newImage = new BufferedImage(d[0], d[1], image.getType());
            Graphics g = newImage.getGraphics();
            g.drawImage(image, 0, 0, d[0], d[1], null);
            g.dispose();
            /* 居中剪裁 */
            newImage = newImage.getSubimage(x, y, thumbWidth, thumbHeight);
            ImageIO.write(
                    newImage,
                    imageFile.getName().substring(
                            imageFile.getName().lastIndexOf(".") + 1), outFile);
        }
    
        public static void main(String[] args) throws Exception {
            ImgTest.createImgThumbnail("D:/test/2.jpg", 510, 288, 
                    "D:/test/test_2.jpg");
        }
    }
  • 相关阅读:
    缓存
    java垃圾回收机制GC(Garbage Collection)
    设计模式之适配器模式
    数据的水平分片意义
    屏幕坏点简单检查方法(网页纯色检查)
    Mac OS X上如何实现到Linux主机的ssh免登陆[forward]
    25个必须记住的SSH命令[forward]
    资料链接整理
    JAVA学习网站收集
    详细介绍ORACLE sqlplus命令(转)
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/7412920.html
Copyright © 2011-2022 走看看