java生成指定尺寸的缩略图

别来无恙 提交于 2019-12-10 22:00:19

用thumbnailator库生成缩略图。github链接
功能很强大,生成的缩略图不会拉伸变形,也不用担心原图小于指定尺寸的情况,会自动按比例放大之后再裁剪。

1. 库安装

直接用maven添加库依赖,将以下代码加入pom.xml文件中就能用啦。

<dependency>
  <groupId>net.coobird</groupId>
  <artifactId>thumbnailator</artifactId>
  <version>[0.4, 0.5)</version>
</dependency>

2. 读取图片并生成缩略图

import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.net.URL;
import javax.imageio.ImageIO;
import java.io.File;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.lang.StringUtils;

public class ImageUtil {
    /**
     * 
     * @param image 用imageio读取的图片
     * @param width 缩略图的目标宽度
     * @param height 缩略图的目标高度
     * @param save_file 保存图片的路径
     * @return 无返回 
     */
    public static void thumbnail(BufferedImage image, int width, int height, String save_file) {
        try {
            Thumbnails.of(image)
                .crop(Positions.CENTER)//从图片中心截取缩略图
                .size(width, height)
                .toFile(save_file);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        try {
           //读取图片
            File input = new File("/Users/wuxinyue/XXamPFXa.png");
            BufferedImage bimg = ImageIO.read(input);//读取本地图片
            //BufferedImage bimg = ImageIO.read(new URL("http://img.alicdn.com/tfs/TB1kbMoUOLaK1RjSZFxXXamPFXa.png"));//读取url图片
            
			//生成缩略图并保存
            String save_file = "/Users/wuxinyue/XXamPFXa_thumb.png";
            ImageUtil.thumbnail(bimg, 128, 128, save_file);
        } catch (Exception e) {
        }
    }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!