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");
        }
    }
  • 相关阅读:
    R语言入门视频笔记--2--一些简单的命令
    Java 虚拟机内存优化
    Apollo 配置中心
    Apollo本地缓存文件
    SpringBoot 远程调试
    SpringCloud微服务架构下 部署在ECS上 403
    Nginx 常用命令
    阿里云数据库Redis版 ERR invalid password
    Apollo配置中心搭建
    Gateway 访问超时 返回504
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/7412920.html
Copyright © 2011-2022 走看看