Java语言利用Google的Thumbnailator处理图片

发布时间:2019-06-02 22:00:01发布者:Mr.Zhang阅读(357)

导读:在Java中制作高质量的缩略图可能是一项相当困难的任务,或者图片质量高页面加载慢等等原因使需要对图片进行处理,但是又不想写太多的代码太麻烦去处理图片,那么就可以使用Thumbnailator——Thumbnailator是一个单独的JAR文件,不依赖于外部库,使开发和部署变得简单和容易。

1.Thumbnailator能提供那些功能

  1. 图片裁剪
  2. 修改像素
  3. 缩小/扩大
  4. 压缩质量
  5. 旋转
  6. 加水印
  7. 转化图片格式
  8. 其他……

2.Thumbnailator怎么引入项目

  maven的pom.xml添加下面的dependency:

<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

  也可以下载thumbnailator-0.4.8.jar包,导入工程lib下面;

3.Thumbnailator怎么使用

package com.tao.springboot;

import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class Thumbnailator {
    public static void main(String[] args) throws IOException {
        // 需要压缩的图片
        File inFile = new File("C:/images/test.jpg");
        // 压缩完的存放地址
        String outFile = "C:/images/test.jpg";
        // 图片裁剪
        Thumbnails.of(inFile).sourceRegion(0,0,400,400).size(200,200).toFile(outFile);
        // 修改像素
        Thumbnails.of(inFile).size(200,200).toFile(outFile);
        // 缩小
        Thumbnails.of(inFile).scale(0.5f).toFile(outFile);
        // 扩大
        Thumbnails.of(inFile).scale(2f).toFile(outFile);
        // 压缩质量
        Thumbnails.of(inFile).outputQuality(0.5f).toFile(outFile);
        // 旋转
        Thumbnails.of(inFile).rotate(90).toFile(outFile);
        // 图片水印
        File waterFile = new File("C:/images/water.jpg");
        Thumbnails.of(inFile).watermark(Positions.BOTTOM_CENTER, ImageIO.read(waterFile),0.5f).toFile(outFile);
        // 文字水印
        BufferedImage bi = new BufferedImage(80,30,BufferedImage.TYPE_INT_BGR);
        Graphics2D g = bi.createGraphics();
        g.setColor(Color.lightGray);
        g.drawRect(0,0,50,10);
        g.drawString("文字水印", 20,20);
        Thumbnails.of(inFile).watermark(Positions.BOTTOM_LEFT, bi, 0.5f).toFile(outFile);
        // 转化图片格式
        Thumbnails.of(inFile).outputFormatType("png").toFile(outFile);
    }

}

4.参考资料

github地址:https://github.com/coobird/thumbnailator

maven地址:https://mvnrepository.com/artifact/net.coobird/thumbnailator





本文转自博客园,原文地址:https://www.cnblogs.com/i-tao/p/10963014.html