亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java 壓縮圖片(只縮小體積,不更改圖片尺寸)的示例

瀏覽:17日期:2022-08-22 10:37:55

1.情景展示

在調用騰訊身份證OCR接口的時候,由于要求圖片大小只能限制在1MB以內,這樣,就必須使用到圖片壓縮技術

2.代碼展示

/** * 圖片處理工具類 * @explain * @author Marydon * @creationTime 2019年9月3日上午10:14:17 * @version 1.0 * @since * @email [email protected] */public class ImgUtils { /** * 壓縮圖片(通過降低圖片質量) * @explain 壓縮圖片,通過壓縮圖片質量,保持原圖大小 * @param quality * 圖片質量(0-1) * @return byte[] * 壓縮后的圖片(jpg) * @throws */ public static byte[] compressPicByQuality(byte[] imgByte, float quality) {byte[] imgBytes = null;try { ByteArrayInputStream byteInput = new ByteArrayInputStream(imgByte); BufferedImage image = ImageIO.read(byteInput); // 如果圖片空,返回空 if (image == null) {return null; } // 得到指定Format圖片的writer(迭代器) Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName('jpeg'); // 得到writer ImageWriter writer = (ImageWriter) iter.next(); // 得到指定writer的輸出參數設置(ImageWriteParam ) ImageWriteParam iwp = writer.getDefaultWriteParam(); // 設置可否壓縮 iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); // 設置壓縮質量參數 iwp.setCompressionQuality(quality); iwp.setProgressiveMode(ImageWriteParam.MODE_DISABLED); ColorModel colorModel = ColorModel.getRGBdefault(); // 指定壓縮時使用的色彩模式 iwp.setDestinationType( new javax.imageio.ImageTypeSpecifier(colorModel, colorModel.createCompatibleSampleModel(16, 16))); // 開始打包圖片,寫入byte[] // 取得內存輸出流 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); IIOImage iIamge = new IIOImage(image, null, null); // 此處因為ImageWriter中用來接收write信息的output要求必須是ImageOutput // 通過ImageIo中的靜態方法,得到byteArrayOutputStream的ImageOutput writer.setOutput(ImageIO.createImageOutputStream(byteArrayOutputStream)); writer.write(null, iIamge, iwp); imgBytes = byteArrayOutputStream.toByteArray();} catch (IOException e) { System.out.println('write errro'); e.printStackTrace();}return imgBytes; }}

3.其它代碼

import org.apache.commons.codec.binary.Base64;

String imgBase64 = '';try { // 圖片大小超過1MB if (file.getSize()/1024 > 1024) {byte[] imgBytes = ImgUtils.compressPicByQuality(file.getBytes(),0.1F);imgBase64 = Base64.encodeBase64String(imgBytes); } else {imgBase64 = Base64.encodeBase64String(file.getBytes()); }} catch (IOException e1) { e1.printStackTrace();}

說明:

生成的base64圖片沒有圖片格式頭,即:data:image/jpeg;base64,

4.增加前端代碼

/** * 拍照或選擇圖片 */this.uploadPicture = function () { // js 獲取文件對象 var fileObj = document.getElementById('file').files[0]; if (null == fileObj) {alert('圖像上傳失敗,請重試!'); } // TODO 顯示遮罩 // 創建form表單 var formFile = new FormData(); //加入文件對象 formFile.append('file', fileObj); // 創建XMLHttpRequest 對象 var xhr = new XMLHttpRequest(); xhr.open('post', baseUrl + '/weixin/facein/upImg3.do', true); xhr.onload = function () {var resData = JSON.parse(this.responseText)// 將返回數據轉換成JSON對象var json = eval(’(’ + resData.data2 + ’)’);// 身份證識別成功if (json.ret == 0) { // TODO 將所需數據填充到頁面 } else { alert('識別失敗,請重試!' + json.msg);}document.getElementById('file').value = '';// TODO 隱藏遮罩 }; // 調用騰訊接口 xhr.send(formFile);};

以上就是java 壓縮圖片(只縮小體積,不更改圖片尺寸)的示例的詳細內容,更多關于java 壓縮圖片的資料請關注好吧啦網其它相關文章!

標簽: Java
主站蜘蛛池模板: 一男一女野外大黄毛片 | 国产精品国产精品国产专区不卡 | 在线观看国产wwwa级羞羞视频 | 午夜性刺激小说 | 亚洲国产二区三区 | 清纯唯美亚洲综合五月天 | 99久久国产免费福利 | 肉色网站 | 免费日本黄色 | 欧美一级特黄aa大片在线观看免费 | 欧美一级二级三级视频 | 国产a∨一区二区三区香蕉小说 | 亚洲一级视频在线观看 | 国产成+人+亚洲+欧美综合 | 91久久精品国产91久久性色也 | 国产成年人在线观看 | 国产精品久久福利新婚之夜 | 亚拍一区| 亚洲国产激情一区二区三区 | 一a一片一级一片啪啪 | 伊人热 | 啪视频在线观看 | 成人精品网 | 国产精品亚欧美一区二区三区 | 国产日韩欧美亚洲精品95 | 亚洲欧美日韩精品久久亚洲区色播 | 俄罗斯小屁孩和大人啪啪 | 成人在线观看网址 | 草草视频免费在线观看 | 国产精品福利在线观看秒播 | 色综合久| 中国黄色在线观看 | 国产一区二区免费 | 超清波多野结衣精品一区 | 男女爱爱免费高清 | 国产高清在线观看麻豆 | 国产日韩欧美亚洲综合首页 | 亚洲成a人片在线观看中文动漫 | 小优视频高清视频在线看 | 欧美一级毛片免费网站 | 国内自拍视频在线看免费观看 |