java图片压缩
发布时间:2020-12-15 03:23:09 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /** * 改变图片的大小到宽为size,然后高随着宽等比例变化 * @param is 上传的图片的输入流 * @param os 改变了图片的大小后,把图片的流输出到目标Ou
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 /** * 改变图片的大小到宽为size,然后高随着宽等比例变化 * @param is 上传的图片的输入流 * @param os 改变了图片的大小后,把图片的流输出到目标OutputStream * @param size 新图片的宽 * @param format 新图片的格式 * @throws IOException */ public static void resizeImage1(InputStream is,OutputStream os,int size,String format) { try { BufferedImage prevImage = ImageIO.read(is); double width = prevImage.getWidth(); double height = prevImage.getHeight(); double percent = size/width; int newWidth = (int)(width * percent); int newHeight = (int)(height * percent); BufferedImage image = new BufferedImage(newWidth,newHeight,BufferedImage.TYPE_INT_BGR); //以下代码在压缩图片透明背景会变成变黑色 /* Graphics graphics = image.createGraphics(); graphics.drawImage(prevImage,newWidth,null); ImageIO.write(image,format,os);*/ ///////////////////////////////////////// //以下代码解决在压缩png格式的图片透明背景会变成变黑色的问题 Graphics2D g2d = image.createGraphics(); image = g2d.getDeviceConfiguration().createCompatibleImage(newWidth,Transparency.TRANSLUCENT); g2d.dispose(); g2d = image.createGraphics(); Image from = prevImage.getScaledInstance(newWidth,prevImage.SCALE_AREA_AVERAGING); g2d.drawImage(from,null); g2d.dispose(); ImageIO.write(image,os); os.flush(); is.close(); os.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |