最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 如何將圖片按照原尺寸比例存入word中

 更新時(shí)間:2021年07月31日 14:32:49   作者:PolarisHuster  
這篇文章主要介紹了java 如何將圖片按照原尺寸比例存入word中的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java 圖片按照原尺寸比例存入word

在使用poi往word里面插入圖片時(shí)可以使用

XWPFParagraph.insertNewRun(i).addPicture(InputStream pictureData, int pictureType, String filename, int width, int height)方法

但是為了使得插入word中的圖片按照原圖尺寸進(jìn)行等比例縮放,我們必須必須獲得原圖的尺寸,常用的方法就是通過

javax.imageio.ImageIO.read(InputStream input)方法讀取圖片信息,這樣就會涉及到兩次圖片讀寫,為了減少不必要的網(wǎng)絡(luò)通信,

我們可以使用下面的方式進(jìn)行優(yōu)化:

URL url = new URL(runText);
  byte[] bytes = IOUtils.toByteArray(url.openStream());
  ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
  BufferedImage img = javax.imageio.ImageIO.read(bis);
  int width = img.getWidth();
  int height = img.getHeight();
  //下面按照圖片的實(shí)際大小進(jìn)行同比例縮放
  int picHeight = 300;
  int picWidth = picHeight * width/height;
  //下次讀取該ByteArrayInputStream 之前一定要調(diào)用reset進(jìn)行復(fù)位,這樣才能讀到圖片所有數(shù)據(jù)
  bis.reset();
  para.insertNewRun(i).addPicture(bis,
          XWPFDocument.PICTURE_TYPE_JPEG, url.getFile(), Units.toEMU(picWidth), Units.toEMU(picHeight));

好了,上面就是通過ByteArrayInputStream來減少網(wǎng)絡(luò)通信次數(shù)的。

POI導(dǎo)出word中XWPFRun的addPicture方法設(shè)置圖片寬度和高度

XWPFRun run = paragraph.createRun();
InputStream is = getClass().getClassLoader().getResourceAsStream("images/abc.gif");
// 因?yàn)镕ileInputStream沒有重寫reset() 所有將流轉(zhuǎn)為了byte數(shù)組
byte[] bs = IOUtils.toByteArray(is);
BufferedImage image = ImageIO.read(new ByteArrayInputStream(bs));
//int width = MyUnits.pxToEMU(image.getWidth());
//int height = MyUnits.pxToEMU(image.getHeight());
//EMU(英制公制單位)。1 EMU = 1/914400英寸= 1/36000 mm
run.addPicture(new ByteArrayInputStream(bs), Document.PICTURE_TYPE_GIF, "", 685800, 685800);

如果不知道參考的word模板的圖片設(shè)置的大小,則可以雙擊word模板中的圖片,然后查看寬度和高度

addPicture方法中的寬度和高度是EMU(英制公制單位),所有根據(jù)1 EMU = 1/914400英寸= 1/36000 mm轉(zhuǎn)化即可。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot定制type Formatters實(shí)例詳解

    Spring Boot定制type Formatters實(shí)例詳解

    在本篇文章里小編給大家整理的是關(guān)于Spring Boot定制type Formatters實(shí)例知識點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • SpringBoot 集成 Memcached的方法示例

    SpringBoot 集成 Memcached的方法示例

    這篇文章主要介紹了SpringBoot 集成 Memcached的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 本地安裝Nacos的踩坑過程及解決

    本地安裝Nacos的踩坑過程及解決

    這篇文章主要介紹了本地安裝Nacos的踩坑過程及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java信號量全解析

    Java信號量全解析

    這篇文章主要介紹了Java信號量的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • Mybatis 數(shù)據(jù)庫連接池的實(shí)現(xiàn)示例

    Mybatis 數(shù)據(jù)庫連接池的實(shí)現(xiàn)示例

    在Java應(yīng)用程序中,與數(shù)據(jù)庫的連接是非常昂貴的,因此,當(dāng)我們使用MyBatis進(jìn)行數(shù)據(jù)操作時(shí),需要一個(gè)連接池來分配并管理這些連接,本文主要介紹了Mybatis 數(shù)據(jù)庫連接池的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Spring IOC的三種實(shí)現(xiàn)方式詳解

    Spring IOC的三種實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Spring IOC的三種實(shí)現(xiàn)方式,在Spring框架中,IOC通過依賴注入來實(shí)現(xiàn),而依賴注入主要有三種實(shí)現(xiàn)方式,構(gòu)造器注入、Setter注入和字段注入,每種方式都有其特點(diǎn)、適用場景和優(yōu)缺點(diǎn),需要的朋友可以參考下
    2025-02-02
  • Java實(shí)用工具之使用oshi獲取主機(jī)信息的方法

    Java實(shí)用工具之使用oshi獲取主機(jī)信息的方法

    這篇文章主要介紹了Java實(shí)用工具之使用oshi獲取主機(jī)信息的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java聊天室之實(shí)現(xiàn)使用Socket傳遞音頻

    Java聊天室之實(shí)現(xiàn)使用Socket傳遞音頻

    這篇文章主要為大家詳細(xì)介紹了Java簡易聊天室之使用Socket實(shí)現(xiàn)傳遞音頻功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下
    2022-10-10
  • Java簡單數(shù)據(jù)加密方法DES實(shí)現(xiàn)過程解析

    Java簡單數(shù)據(jù)加密方法DES實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Java簡單數(shù)據(jù)加密方法DES實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • MyBatis-plus+達(dá)夢數(shù)據(jù)庫實(shí)現(xiàn)自動生成代碼的示例

    MyBatis-plus+達(dá)夢數(shù)據(jù)庫實(shí)現(xiàn)自動生成代碼的示例

    這篇文章主要介紹了MyBatis-plus+達(dá)夢數(shù)據(jù)庫實(shí)現(xiàn)自動生成代碼的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論

巍山| 昔阳县| 永宁县| 岳阳县| 德清县| 栖霞市| 德格县| 长葛市| 香港| 厦门市| 兰考县| 霍邱县| 敖汉旗| 哈密市| 依兰县| 扎囊县| 健康| 治县。| 庆阳市| 兴和县| 洪湖市| 旬邑县| 岳普湖县| 射洪县| 天峻县| 唐海县| 西丰县| 永康市| 巴南区| 江华| 东光县| 和龙市| 日照市| 新泰市| 收藏| 株洲县| 昌江| 莎车县| 银川市| 桐城市| 邯郸市|