成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

強大!Spring Boot 圖片處理工具,實現縮放,水印,旋轉等功能僅需一行代碼

開發 開發工具
在Web項目開發中,對用戶上傳的圖片進行處理是非常有必要的。對于圖片的處理,常見的需求包括縮放、添加水印等。

環境:SpringBoot3.2.5

1. 簡介

在Web項目開發中,對用戶上傳的圖片進行處理是非常有必要的。對于圖片的處理,常見的需求包括縮放、添加水印等。

縮放功能可以根據實際需求調整圖片的大小,以適應不同的顯示場景。通過合理的縮放,不僅可以節省存儲空間,還能提升加載速度,優化用戶體驗。

水印功能則是一種有效的版權保護手段。通過在圖片上添加文字或圖標水印,可以明確標識圖片的歸屬和來源,防止被惡意盜用。

在Java環境中創建高質量的縮略圖可能頗具挑戰性,要求開發者掌握Image I/O API、Java 2D API以及圖像處理和縮放技術等復雜知識。然而,你無需為此擔憂!本篇文章將介紹一個非常牛逼的開源組件Thumbnailator。

Thumbnailator的流暢接口(Fluent Interface)可以用來在一步簡單的操作中完成相當復雜的縮略圖處理任務。

準備環境,引入如下依賴:

<dependency>
  <groupId>net.coobird</groupId>
  <artifactId>thumbnailator</artifactId>
  <version>0.4.20</version>
</dependency>

不依賴其它,只需引入該包即可完整各種復雜的圖片出來。

2. 實戰案例

2.1 創建縮略圖

Thumbnails
  .of(new File("d:\\images\\7.png"))
  .size(160, 160)
  .toFile(new File("d:\\images\\output\\7.png")) ;

該示例中,將原圖大小縮放到160 * 160 然后輸出到output目錄下。最終圖片對比如下:

圖片

雖然給定的縮放大小都是160,但是最終生成的是等比例的大小,但是不會超過160。

2.2 添加水印

Thumbnails.of(new File("d:\\images\\7.png")) 
  .size(200, 200)
  .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("d:\\images\\water.png")), 0.5f)
  .outputQuality(0.8)
  .toFile(new File("d:\\images\\output\\7_watermark.png"));

在該示例中,首先調整了圖片大小,接著在右下角放置一個半透明的水印,最后以80%的壓縮質量設置保存為7_watermark.png。最終生成效果:

圖片

2.3 旋轉圖片

Thumbnails.of(new File("d:\\images\\7.png"))
  .scale(1)
  .rotate(180)
  .toFile(new File("d:\\images\\output\\7_rotate.png"));

該示例中,我們將圖片旋轉了180°,最終效果:

圖片

2.4 強制縮略圖大小

在上面的示例中,我們指定了縮放圖片的大小,但是最終生成的圖片還是等比例的,這樣的結果是寬或高不會高出指定的大小,并沒有嚴格的限定在指定的大小。

Thumbnails.of(new File("d:\\images\\7.png"))
  .size(200, 200)
  .keepAspectRatio(false)
  .toFile(new File("d:\\images\\output\\7_keepratio.png"));

最終生成的效果:

圖片

嚴格按照指定的大小生成圖片。你也可以如下操作

Thumbnails.of(new File("d:\\images\\7.png"))
  .forceSize(200, 200)
  .toFile(new File("d:\\images\\output\\7_keepratio.png"));

同樣能按照指定的大小輸出。

2.5 通過指定的因子縮放

Thumbnails.of(new File("d:\\images\\7.png"))
  .scale(0.25)
  .toFile(new File("d:\\images\\output\\7_scale.png"));

通過scale方法設置縮放的比,最終效果:

圖片

2.6 批量生成縮略圖

我們一次性可以出來多個圖片,并指定輸出的目錄。

File destinationDir = new File("d:\\images\\output");
Thumbnails.of("d:\\images\\1.png", "d:\\images\\2.png", "d:\\images\\3.png")
  .size(200, 200)
  .toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);

該示例將1,2,3圖片一次性按照設置生成縮略圖,然后輸出到output目錄下,效果如下:

圖片

這里生成縮略圖的命名策略是自動在原文件名前添加thumbnail.前綴,你也可以設置為:Rename.NO_CHANGE,這樣圖片將按照原文件名輸出。

2.7 與Spring Boot整合

我們這里演示一個圖片上傳后生成縮略圖進行輸出的示例。

@PostMapping("/upload")
public void upload(MultipartFile file, HttpServletResponse response) throws Exception {
  InputStream is = file.getInputStream() ;
  BufferedImage bi = Thumbnails.of(is)
    .size(200, 200)
    .asBufferedImage() ;
  
  response.setContentType("image/png");
  response.setHeader("Content-Disposition", "inline; filename=image.png");


  ImageIO.write(bi, "png", response.getOutputStream()) ;
}

該示例中,將上傳的圖片進行縮放后,返回BufferedImage對象,直接直接將該對象進行輸出,最終效果:

圖片圖片

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2023-01-12 08:07:03

Python代碼版權

2010-03-09 19:19:40

Python圖像處理

2025-03-11 03:00:00

2025-06-18 10:05:26

2020-08-19 10:30:25

代碼Python多線程

2024-05-31 14:04:18

2020-09-28 12:34:38

Python代碼開發

2023-09-21 15:10:55

2022-04-09 09:11:33

Python

2016-12-02 08:53:18

Python一行代碼

2020-02-21 16:51:58

前端可視化傳染病

2021-09-16 14:22:06

微軟WinUI 2.7InfoBadge

2021-04-22 11:27:24

Python命令水印

2025-04-27 03:00:00

Spring集成測試

2016-11-09 18:41:47

PHP圖片存儲yii

2022-05-13 09:36:06

Python水印命令

2021-11-05 06:57:50

架構工具代碼

2021-06-08 11:31:11

WineWaylandVulkan

2021-02-04 17:04:22

Python編程語言代碼

2023-11-07 07:07:23

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩综合色 | 国产精品久久国产精品 | 视频一区二区在线观看 | 中文字幕av第一页 | 国产高清精品网站 | 99re热精品视频 | 9191在线播放 | 国精产品一区二区三区 | 色伊人网 | 久久久久9999亚洲精品 | 日韩精品一区二区三区在线观看 | 一区二区三区欧美 | 日韩精品一区二区三区中文字幕 | 一区二区三区精品视频 | 中文字幕久久久 | 在线一区| xxxxx黄色片 欧美一区免费 | 亚洲一区二区三区在线播放 | 精品久久一区 | 欧美视频福利 | 国产精品爱久久久久久久 | 午夜看看 | 国产精品久久久久久亚洲调教 | 自拍偷拍亚洲视频 | 欧美精品一区二区在线观看 | 9191av| 欧美日韩国产精品一区 | 91精品国产色综合久久 | 日韩欧美国产精品一区 | 777777777亚洲妇女 | 91久久精品国产91久久 | 成人在线视频观看 | 九九国产在线观看 | 久久国产精品久久久久久 | 欧美一级淫片免费视频黄 | 亚洲成人黄色 | 五月天婷婷综合 | 91啪亚洲精品 | 一区二区激情 | 黄色大片网站 | 国产午夜精品一区二区三区嫩草 |