亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java圖片處理開源框架Thumbnailator

 更新時(shí)間:2017年05月10日 17:06:58   作者:wangpeng047  
這篇文章主要為大家詳細(xì)介紹了Java圖片處理開源框架Thumbnailator的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

圖片處理是當(dāng)今軟件開發(fā)中非常重要的一環(huán),然而處理圖片的開源框架卻并不多?,F(xiàn)金網(wǎng)上流傳的Java處理圖片的代碼,雖然可對(duì)圖片進(jìn)行簡(jiǎn)單處理,但效果并不理想。雖然也有些其他解決方案,但都擺脫不了繁瑣,使用起來十分不方便。
為了解決這個(gè)問題,我也是在網(wǎng)上找了好久,看了很多資料,功夫不負(fù)有心人,最終找到了一個(gè)處理圖片十分棒的開源框架。特此拿出來與大家分享。

Thumbnailator 是一個(gè)優(yōu)秀的圖片處理的Google開源Java類庫(kù)。處理效果遠(yuǎn)比Java API的好。從API提供現(xiàn)有的圖像文件和圖像對(duì)象的類中簡(jiǎn)化了處理過程,兩三行代碼就能夠從現(xiàn)有圖片生成處理后的圖片,且允許微調(diào)圖片的生成方式,同時(shí)保持了需要寫入的最低限度的代碼量。還支持對(duì)一個(gè)目錄的所有圖片進(jìn)行批量處理操作。
支持的處理操作:圖片縮放,區(qū)域裁剪,水印,旋轉(zhuǎn),保持比例。

另外值得一提的是,Thumbnailator至今仍不斷更新,怎么樣,感覺很有保障吧!

下面我們介紹下如何使用Thumbnailator

原圖:

1、指定大小進(jìn)行縮放

//size(寬度, 高度) 
 
/* 
 * 若圖片橫比200小,高比300小,不變 
 * 若圖片橫比200小,高比300大,高縮小到300,圖片比例不變 
 * 若圖片橫比200大,高比300小,橫縮小到200,圖片比例不變 
 * 若圖片橫比200大,高比300大,圖片按比例縮小,橫為200或高為300 
 */ 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(200, 300) 
  .toFile("c:/a380_200x300.jpg"); 
 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(2560, 2048) 
  .toFile("c:/a380_2560x2048.jpg"); 

2、按照比例進(jìn)行縮放

//scale(比例) 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .scale(0.25f) 
  .toFile("c:/a380_25%.jpg"); 
 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .scale(1.10f) 
  .toFile("c:/a380_110%.jpg"); 

3、不按照比例,指定大小進(jìn)行縮放

//keepAspectRatio(false)默認(rèn)是按照比例縮放的 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(200,200) 
  .keepAspectRatio(false) 
  .toFile("c:/a380_200x200.jpg"); 

4、旋轉(zhuǎn)

//rotate(角度),正數(shù):順時(shí)針負(fù)數(shù):逆時(shí)針 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .rotate(90) 
  .toFile("c:/a380_rotate+90.jpg"); 
 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .rotate(-90) 
  .toFile("c:/a380_rotate-90.jpg"); 

5、水印

//watermark(位置,水印圖,透明度) 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .watermark(Positions.BOTTOM_RIGHT,ImageIO.read(newFile("images/watermark.png")),0.5f) 
  .outputQuality(0.8f) 
  .toFile("c:/a380_watermark_bottom_right.jpg"); 
 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .watermark(Positions.CENTER,ImageIO.read(newFile("images/watermark.png")),0.5f) 
  .outputQuality(0.8f) 
  .toFile("c:/a380_watermark_center.jpg"); 

6、裁剪

//sourceRegion() 
 
//圖片中心400*400的區(qū)域 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .sourceRegion(Positions.CENTER,400,400) 
  .size(200,200) 
  .keepAspectRatio(false) 
  .toFile("c:/a380_region_center.jpg"); 
 
//圖片右下400*400的區(qū)域 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .sourceRegion(Positions.BOTTOM_RIGHT,400,400) 
  .size(200,200) 
  .keepAspectRatio(false) 
  .toFile("c:/a380_region_bootom_right.jpg"); 
 
//指定坐標(biāo) 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .sourceRegion(600,500,400,400) 
  .size(200,200) 
  .keepAspectRatio(false) 
  .toFile("c:/a380_region_coord.jpg"); 

7、轉(zhuǎn)化圖像格式

//outputFormat(圖像格式) 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .outputFormat("png") 
  .toFile("c:/a380_1280x1024.png"); 
 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .outputFormat("gif") 
  .toFile("c:/a380_1280x1024.gif"); 

 8、輸出到OutputStream

//toOutputStream(流對(duì)象) 
OutputStreamos=newFileOutputStream("c:/a380_1280x1024_OutputStream.png"); 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .toOutputStream(os); 

9、輸出到BufferedImage

//asBufferedImage()返回BufferedImage 
BufferedImagethumbnail=Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .asBufferedImage(); 
ImageIO.write(thumbnail,"jpg",newFile("c:/a380_1280x1024_BufferedImage.jpg")); 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA中的 map,list,set

    JAVA中的 map,list,set

    這篇文章主要介紹了JAVA中的 map、list、set這三個(gè)集合,下面文章圍繞JAVA中的三大集合 map、list、set詳情講解,需要的朋友可以參考一下
    2021-11-11
  • 使用Java創(chuàng)建數(shù)據(jù)透視表并導(dǎo)出為PDF的方法

    使用Java創(chuàng)建數(shù)據(jù)透視表并導(dǎo)出為PDF的方法

    數(shù)據(jù)透視分析是一種強(qiáng)大的工具,可以幫助我們從大量數(shù)據(jù)中提取有用信息并進(jìn)行深入分析,本文將介紹如何使用Java來構(gòu)建PivotTable以及實(shí)現(xiàn)數(shù)據(jù)透視分析,并將其導(dǎo)出為PDF
    2023-10-10
  • Idea連接數(shù)據(jù)庫(kù)并執(zhí)行SQL語句的方法示例

    Idea連接數(shù)據(jù)庫(kù)并執(zhí)行SQL語句的方法示例

    這篇文章主要介紹了Idea連接數(shù)據(jù)庫(kù)并執(zhí)行SQL語句的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java 設(shè)計(jì)模式之適配器模式的詳解

    java 設(shè)計(jì)模式之適配器模式的詳解

    這篇文章主要介紹了java 設(shè)計(jì)模式之適配器模式的詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • mybatis攔截器注冊(cè)初始化編寫示例及如何生效詳解

    mybatis攔截器注冊(cè)初始化編寫示例及如何生效詳解

    這篇文章主要為大家介紹了mybatis攔截器注冊(cè)初始化編寫示例及如何生效詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java Druid連接池與Apache的DBUtils使用教程

    Java Druid連接池與Apache的DBUtils使用教程

    這篇文章主要介紹了Java Druid連接池與Apache的DBUtils使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-12-12
  • Java的最大棧深度與JVM核心知識(shí)介紹

    Java的最大棧深度與JVM核心知識(shí)介紹

    這篇文章主要有兩個(gè)部分,一部分介紹JAVA的最大棧深度,第二部分介紹了JVM核心知識(shí),需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • spring boot項(xiàng)目使用@JsonFormat失效問題的解決

    spring boot項(xiàng)目使用@JsonFormat失效問題的解決

    這篇文章主要介紹了spring boot項(xiàng)目使用@JsonFormat失效問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot使用Mybatis&Mybatis-plus文件映射配置方法

    SpringBoot使用Mybatis&Mybatis-plus文件映射配置方法

    這篇文章主要介紹了SpringBoot使用Mybatis&Mybatis-plus文件映射配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • 配置Servlet兩種方法以及特點(diǎn)詳解

    配置Servlet兩種方法以及特點(diǎn)詳解

    這篇文章主要介紹了配置Servlet兩種方法以及特點(diǎn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論