使用java如何实现压缩图片体积

  介绍

本篇文章给大家分享的是有关使用java如何实现压缩图片体积,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> 1。情景展示

在调用腾讯身份证OCR接口的时候,由于要求图片大小只能限制在1 mb以内,这样,就必须使用到图片压缩技术

<强> 2。代码展示

/* *   ,*图片处理工具类   ,* @explain   ,* @author Marydon   ,* @creationTime 2019年9月3日上午10:14:17   * @version 1.0   ,* @since   * marydon20170307@163.com   ,*/公开课ImgUtils {   ,,,/* *   ,,,,*压缩图片(通过降低图片质量)   ,,,,* @explain压缩图片,通过压缩图片质量,保持原图大小   ,,,,* @param质量   ,,,,*,,,,,,图片质量(0 - 1)   ,,,,* @return byte []   ,,,,*,,,,,压缩后的图片(jpg)   ,,,* @throws   ,,,*/,,,公共静态byte [] compressPicByQuality (byte [] imgByte,浮动质量){   ,,,,,,,byte [] imgBytes=零;   ,,,,,,,试着{   ,,,,,,,,,,,ByteArrayInputStream byteInput=new ByteArrayInputStream (imgByte);   ,,,,,,,,,,,=ImageIO.read BufferedImage图像(byteInput);   ,   ,,,,,,,,,,,//如果图片空,返回空   ,,,,,,,,,,,如果(图片==null) {   ,,,,,,,,,,,,,,,返回null。   ,,,,,,,,,,,}   ,,,,,,,,,,,//得到指定格式图片的作家(迭代器)   ,,,,,,,,,,,Iteratoriter=ImageIO.getImageWritersByFormatName (“jpeg");   ,,,,,,,,,,,//得到的作家   ,,,,,,,,,,,图像打印机作家=(图像打印机)iter.next ();   ,,,,,,,,,,,//得到指定作家的输出参数设置(ImageWriteParam)   ,,,,,,,,,,,ImageWriteParam国际写作计划=writer.getDefaultWriteParam ();   ,,,,,,,,,,,//设置可否压缩   ,,,,,,,,,,,iwp.setCompressionMode (ImageWriteParam.MODE_EXPLICIT);   ,,,,,,,,,,,,//设置压缩质量参数   ,,,,,,,,,,,iwp.setCompressionQuality(质量);   ,   ,,,,,,,,,,,iwp.setProgressiveMode (ImageWriteParam.MODE_DISABLED);   ,   ,,,,,,,,,,,ColorModel ColorModel=ColorModel.getRGBdefault ();   ,,,,,,,,,,,//指定压缩时使用的色彩模式   ,,,,,,,,,,,iwp.setDestinationType (   ,,,,,,,,,,,,,,,,,,,新的javax.imageio。ImageTypeSpecifier (colorModel colorModel。createCompatibleSampleModel(16日16)));   ,   ,,,,,,,,,,,//开始打包图片,写入byte []   ,,,,,,,,,,,//取得内存输出流   ,,,,,,,,,,,ByteArrayOutputStream ByteArrayOutputStream=new ByteArrayOutputStream ();   ,,,,,,,,,,,IIOImage iIamge=new IIOImage(形象,零,零);   ,   ,,,,,,,,,,,//此处因为图像打印机中用来接写收信息的输出要求必须是ImageOutput   ,,,,,,,,,,,//通过ImageIo中的静态方法,得到byteArrayOutputStream的ImageOutput   ,,,,,,,,,,,writer.setOutput (ImageIO.createImageOutputStream (byteArrayOutputStream));   ,,,,,,,,,,,作家。写(null, iIamge,国际写作计划);   ,,,,,,,,,,,imgBytes=byteArrayOutputStream.toByteArray ();   ,,,,,,,}捕捉(IOException e) {   ,,,,,,,,,,,System.out.println(“写errro");   ,,,,,,,,,,,e.printStackTrace ();   ,,,,,,,}   ,,,,,,,返回imgBytes;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用java如何实现压缩图片体积