導讀:在Java中制作高質量的縮略圖可能是一項相當困難的任務,或者圖片質量高頁面加載慢等等原因使需要對圖片進行處理,但是又不想寫太多的代碼太麻煩去處理圖片,那么就可以使用Thumbnailator——Thumbnailator是一個單獨的JAR文件,不依賴於外部庫,使開發和部署變得簡單和容易。
1.Thumbnailator能提供那些功能
- 圖片裁剪
- 修改像素
- 縮小/擴大
- 壓縮質量
- 旋轉
- 加水印
- 轉化圖片格式
- 其他……
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