• 自定义高度宽度缩小图片


    直接上代码:

    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");
        }
    }
  • 相关阅读:
    SolidWorks 2-12 拉伸特征03
    css记
    微信小程序的wxss好难啊,记录我的搞笑界面
    redis的学习使用,第二章
    本周学习Task-Rocketmq
    springcloud-ribbon的使用
    eclipse上使用svn更新代码
    新入职感觉
    在windows里面的数据库里面存emoji表情
    centos7,关闭mysql。出现mysql启动不了的情况
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/7412920.html
Copyright © 2020-2023  润新知