zoukankan      html  css  js  c++  java
  • Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本

    Atitit. 图像处理jpg图片的压缩  清理垃圾图片 java版本

    1. 清理图片压缩图片尺寸 1

    2. 所以要使用ImageWriter 1

    3. Thumbnails质量压缩builder.outputQuality(0.9); 2

    4. attilax框架的处理 code 2

    5. 到一篇文章提到如何控制jpg图片后压缩的质量 3

    6. 参考 4

    1. 清理图片压缩图片尺寸

    目标::300kb>>>10kb..

    处理流程:::scale,outputQuality(0.5)

    裁剪crop,only 顶一半....

    在上传到个云盘,cp处理..sysn

    处理出来个mini版本的pic folder..在跟个ori 大的尺寸文件夹sync..删除别的不要的...

    中间走不个不要的图片删除出k...

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    2. 所以要使用ImageWriter

     

    ImageIO虽然能支持选定格式的输出

    但是不能自己设置质量

     

    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); // 设置可否压缩 

     

     

     

    3. Thumbnails质量压缩builder.outputQuality(0.9);

    00001. builder.outputQuality(0.9); //参数是浮点数,0-1之间

    质量压缩

    00001. builder.outputQuality(0.9); //参数是浮点数,0-1之间

     

     

    4. attilax框架的处理 code

    atibrow

    public   void scale4clr(String jpg, String deboxJpgint width)

    throws IOException {

    Image img = ImageIO.read(new File(jpg));

    int width2 = img.getWidth(null);

    if(width2<width+2)

    {System.out.println("--skip:"+jpg);

    return;

    }

    //int wid = width2 - (border * 2);

    double scale_perst=(double)width/(double)width2;

    double nowhit=img.getHeight(null);

    double nowwit=scale_perst*width2;

    int nowhit_haf=(intimg.getHeight(null)/2;

    //int hit = img.getHeight(null) - (border * 2);

    Thumbnails.of(jpg).scale(scale_perst).sourceRegion(Positions.TOP_LEFT, (intwidth2nowhit_haf).outputFormat("jpg").outputQuality(0.5).toFile(deboxJpg);

    }

     

    5. 到一篇文章提到如何控制jpg图片后压缩的质量


    http://www.universalwebservices.net/web-programming-resources/java/adjust-jpeg-image-compression-quality-when-saving-images-in-java/
    重点我这里提出来说一下
    ImageWriter writer; // 自己获取 ImageWriter 对象
    ImageWriteParam iwp = writer.getDefaultWriteParam();
    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    // 参数为0和1
    // 1表示设置最小的压缩以保持最大的图片质量 
    iwp.setCompressionQuality(1);
    File file = new File(OUTPUTFILE);
    FileImageOutputStream output = new FileImageOutputStream(file);
    writer.setOutput(output);
    IIOImage image = new IIOImage(BUFFEREDIMAGE, null, null);
    // 写入图片
    writer.write(null, image, iwp);
    writer.dispose() 

     

    6. 参考

    JAVA 图像处理库 Thumbnails-强子IT博客.htm

    图像按质量压缩、转换为字符数组小结 - kfhzy的专栏 - 博客频道 - CSDN.NET.htm

    如何用java 调整jepg图片压缩? - Java - 知乎.htm

    java中图片按质量压缩的再一次小结 - - ITeye技术网站.htm

  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    leetcode 213. 打家劫舍 II JAVA
    leetcode 48. 旋转图像 java
    leetcode 45. 跳跃游戏 II JAVA
    leetcode 42. 接雨水 JAVA
    40. 组合总和 II leetcode JAVA
    24. 两两交换链表中的节点 leetcode
    1002. 查找常用字符 leecode
    leetcode 23. 合并K个排序链表 JAVA
  • 原文地址:https://www.cnblogs.com/attilax/p/15198917.html
Copyright © 2011-2022 走看看