java實(shí)現(xiàn)圖片分割指定大小
本文實(shí)例為大家分享了java實(shí)現(xiàn)圖片分割指定大小的具體代碼,供大家參考,具體內(nèi)容如下
1.使用工具:Thumbnails
Thumbnails 是由谷歌提供的圖片處理包,目前版本0.4.8。
可以簡潔的實(shí)現(xiàn)圖片的縮放、壓縮、旋轉(zhuǎn)、水印、格式轉(zhuǎn)換等操作。
2.引入maven
<dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version> </dependency> //最新版本可自查
3.工具類
import org.springframework.web.multipart.MultipartFile; import net.coobird.thumbnailator.Thumbnails; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; /** * @Auther: lch * @Date: 2019/3/11 09:58 * @Description: 圖片工具類 */ public class ImgUtils { public static byte[] uploadImg(Integer height,Integer width,MultipartFile file) throws Exception{ String fileSuffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1); BufferedImage bufferedImageBig = Thumbnails.of(file.getInputStream()) .forceSize(height, width).asBufferedImage(); //大圖字節(jié)轉(zhuǎn)換 ByteArrayOutputStream outBig = new ByteArrayOutputStream(); try { ImageIO.write(bufferedImageBig, fileSuffix, outBig); } catch (IOException e) { e.printStackTrace(); } return outBig.toByteArray(); } }
4.切割圖片返回字節(jié)數(shù)組
/** * 接收文件 * * * @param model * @return * @throws IOException * @throws IllegalStateException */ @RequestMapping(value = "imageupload") public void imageUpload(MultipartFile file) throws IllegalStateException, IOException { //文件名稱 String realFileName = file.getOriginalFilename(); //文件后綴 String suffix = realFileName.substring(realFileName.lastIndexOf(".") + 1); /***************文件處理*********************/ try { //大圖圖片切割 --寬高 720 - 720 byte[] bytesBig = ImgUtils.uploadImg(720, 720, file); //中圖圖片切割 --寬高 200 - 200 byte[] bytesMiddle = ImgUtils.uploadImg(200, 200, file); //小圖圖片切割 --寬高 50- 50 byte[] bytesSmall = ImgUtils.uploadImg(50, 50, file); /************以上三種byte數(shù)組,即為切割后的文件******************/ } catch (Exception e) { System.out.println("錯(cuò)誤"); } }
小編再為大家補(bǔ)充一段相關(guān)代碼:java圖片切割圓形
@Test public void test() { try { // 讀取圖片 BufferedImage bi1 = ImageIO.read(new File("g:/free-sheet-share.jpg")); BufferedImage bi2 = new BufferedImage(bi1.getWidth(), bi1.getHeight(), BufferedImage.TYPE_INT_RGB); Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, bi1.getWidth(), bi1 .getHeight()); Graphics2D g2 = bi2.createGraphics(); g2.setBackground(Color.WHITE); g2.fill(new Rectangle(bi2.getWidth(), bi2.getHeight())); g2.setClip(shape); //設(shè)置抗鋸齒 g2.drawImage(bi1, 0, 0, null); g2.dispose(); ImageIO.write(bi2, "jpg", new File("e:/2.jpg")); } catch (IOException e) { e.printStackTrace(); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
InterlliJ IDEA2020新建java web項(xiàng)目找不到Static Web的解決
這篇文章主要介紹了InterlliJ IDEA2020新建java web項(xiàng)目找不到Static Web的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09SpringBoot整合Java DL4J實(shí)現(xiàn)文本分類系統(tǒng)
在當(dāng)今信息爆炸的時(shí)代,自然語言處理領(lǐng)域中的文本分類顯得尤為重要,文本分類能夠高效地組織和管理海量的文本數(shù)據(jù),隨著互聯(lián)網(wǎng)的飛速發(fā)展,我們每天都被大量的文本信息所包圍,本文將介紹如何使用 Spring Boot 整合 Java Deeplearning4j 來構(gòu)建一個(gè)文本分類系統(tǒng)2024-10-10Springmvc加ajax實(shí)現(xiàn)上傳文件并頁面局部刷新
這篇文章主要介紹了Springmvc加ajax實(shí)現(xiàn)上傳文件并頁面局部刷新,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Java Scanner對象中hasNext()與next()方法的使用
這篇文章主要介紹了Java Scanner對象中hasNext()與next()方法的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10使用SpringAop動(dòng)態(tài)獲取mapper執(zhí)行的SQL,并保存SQL到Log表中
這篇文章主要介紹了使用SpringAop動(dòng)態(tài)獲取mapper執(zhí)行的SQL,并保存SQL到Log表中問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Java訪問WebService返回XML數(shù)據(jù)的方法
這篇文章主要介紹了Java訪問WebService返回XML數(shù)據(jù)的方法,涉及java操作WebService的相關(guān)技巧,需要的朋友可以參考下2015-06-06Spring中的spring-retry重試機(jī)制解析
這篇文章主要介紹了Spring中的spring-retry重試機(jī)制解析,spring-retry可以通過注解,在不入侵原有業(yè)務(wù)邏輯代碼的方式下,優(yōu)雅的實(shí)現(xiàn)重處理功能,在spring-retry中,所有配置都是基于簡單注釋的,需要的朋友可以參考下2024-01-01SpringBoot整合EasyExcel?3.x的完整示例
EasyExcel 是一個(gè)基于 Java 的、快速、簡潔、解決大文件內(nèi)存溢出的 Excel 處理工具,它能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成 Excel 的讀、寫等功能,這篇文章主要介紹了SpringBoot整合EasyExcel3.x的過程,需要的朋友可以參考下2023-07-07解決RestTemplate 請求url中包含百分號 會(huì)被轉(zhuǎn)義成25的問題
這篇文章主要介紹了解決RestTemplate 請求url中包含百分號 會(huì)被轉(zhuǎn)義成25的問題,具有很好的參考價(jià)值,希望對大家有所幫助。2021-10-10