欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • Java實(shí)現(xiàn)圖片合成的示例詳解

    Java實(shí)現(xiàn)圖片合成的示例詳解

    前端有一個(gè)神器——canvas,這個(gè)畫布標(biāo)簽可以處理各種圖片的合成,可以精確到圖片的具體坐標(biāo)。java后端也有這樣的神器,那就是image-combiner,可以很簡單的合成圖片,感興趣的可以試一試
    2022-01-01
  • 使用Nacos下載、配置、整合項(xiàng)目方式

    使用Nacos下載、配置、整合項(xiàng)目方式

    這篇文章主要介紹了使用Nacos 下載、配置、整合項(xiàng)目方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式

    MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式

    今天小編就為大家分享一篇關(guān)于MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java動態(tài)構(gòu)建數(shù)據(jù)庫復(fù)雜查詢教程

    java動態(tài)構(gòu)建數(shù)據(jù)庫復(fù)雜查詢教程

    這篇文章主要介紹了java動態(tài)構(gòu)建數(shù)據(jù)庫復(fù)雜查詢的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-11-11
  • Java后端返回PDF預(yù)覽給前端的實(shí)現(xiàn)

    Java后端返回PDF預(yù)覽給前端的實(shí)現(xiàn)

    前端要預(yù)覽服務(wù)器PDF 可直接將要blob流返回給前端,即可用瀏覽器自帶pdf預(yù)覽功能打開,本文就來介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2023-09-09
  • SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端)

    SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端)

    這篇文章主要介紹了SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端),快速生成后端代碼、封裝結(jié)果集、增刪改查、模糊查找,畢設(shè)基礎(chǔ)框架,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Java用itextpdf導(dǎo)出PDF方法(通俗易懂)

    Java用itextpdf導(dǎo)出PDF方法(通俗易懂)

    因?yàn)轫?xiàng)目需要導(dǎo)出PDF文件,所以去找了一下能夠生成PDF的java工具,這篇文章主要給大家介紹了關(guān)于Java用itextpdf導(dǎo)出PDF的相關(guān)資料,文中介紹的方法通俗易懂,需要的朋友可以參考下
    2023-07-07
  • 深入淺出講解Spring框架中依賴注入與控制反轉(zhuǎn)及應(yīng)用

    深入淺出講解Spring框架中依賴注入與控制反轉(zhuǎn)及應(yīng)用

    依賴注入(Dependency?Injection)和控制反轉(zhuǎn)(Inversion?of?Control)是同一個(gè)概念。具體含義是:當(dāng)某個(gè)角色(可能是一個(gè)Java實(shí)例,調(diào)用者)需要另一個(gè)角色(另一個(gè)Java實(shí)例,被調(diào)用者)的協(xié)助時(shí),在?傳統(tǒng)的程序設(shè)計(jì)過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實(shí)例
    2022-03-03
  • 解析Java Class 文件過程

    解析Java Class 文件過程

    class文件全名稱為Java class文件,主要在平臺無關(guān)性和網(wǎng)絡(luò)移動性方面使Java更適合網(wǎng)絡(luò)。它在平臺無關(guān)性方面的任務(wù)是:為Java程序提供獨(dú)立于底層主機(jī)平臺的二進(jìn)制形式的服務(wù)。下面我們來詳細(xì)解讀下它吧
    2019-05-05
  • java中數(shù)組的應(yīng)用及方法

    java中數(shù)組的應(yīng)用及方法

    本篇文章介紹了,java中數(shù)組的應(yīng)用及方法。需要的朋友參考下
    2013-04-04

最新評論