加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java图片压缩

发布时间:2020-05-24 21:31:01 所属栏目:Java 来源:互联网
导读:java图片压缩

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

/** 
   * 改变图片的大小到宽为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();
   }  
  }  

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读