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 deboxJpg, int 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=(int) img.getHeight(null)/2;

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

Thumbnails.of(jpg).scale(scale_perst).sourceRegion(Positions.TOP_LEFT, (int) width2, nowhit_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

Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本的更多相关文章

  1. Atitit 图像处理 灰度图片 灰度化的原理与实现

    Atitit 图像处理 灰度图片 灰度化的原理与实现 24位彩色图与8位灰度图 首先要先介绍一下24位彩色图像,在一个24位彩色图像中,每个像素由三个字节表示,通常表示为RGB.通常,许多24位彩色图 ...

  2. Atitit图像处理的用途

    Atitit图像处理的用途 1.1. 分类识别 (人脸检测,肤色识别,人类检测:1 1.2. 炫丽的动态按钮生成:色相旋转+自己的草书等图片合成,图片自动裁剪1 1.3. 集成调用自绘gui接口:识别 ...

  3. Atitit  图像处理底色变红的解决

    Atitit  图像处理底色变红的解决 1.1. 原因  ImageIO  bug ,alpha通道应该在保存jpg的时候排除1 1.2. 解决,自己移除alpha通道即可1 2. Image sav ...

  4. Atitit 图像处理30大经典算法attilax总结

    Atitit 图像处理30大经典算法attilax总结 1. 识别模糊图片算法2 2. 相似度识别算法(ahash,phash,dhash)2 3. 分辨率太小图片2 4. 横条薯条广告2 5. 图像 ...

  5. Atitit 图像处理 调用opencv 通过java  api   attilax总结

    Atitit 图像处理 调用opencv 通过java  api   attilax总结 1.1. Opencv java api的支持 opencv2.4.2 就有了对java api的支持1 1. ...

  6. Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx

    Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx 分类 图像处理知识点体系 v2 qb24.xlsx 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...

  7. Atitit  图像处理Depixelizing Pixel Art像素风格画的矢量化

    Atitit  图像处理Depixelizing Pixel Art像素风格画的矢量化 在去年的时候,偶然看到hqx算法. 一个高质量的插值放大算法. 与双线性插值等插值算法相比,这个算法放大后对人眼 ...

  8. Atitit 图像处理知识点  知识体系 知识图谱v2

    Atitit 图像处理知识点  知识体系 知识图谱v2 霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像 ...

  9. Atitit 图像处理知识点  知识体系 知识图谱

    Atitit 图像处理知识点  知识体系 知识图谱 图像处理知识点 图像处理知识点体系 v2 qb24.xlsx 基本知识图像金字塔op膨胀叠加混合变暗识别与检测分类肤色检测other验证码生成 基本 ...

随机推荐

  1. java使用HttpClient 发送get、pot请求

    package eidolon.messageback.PostUtil; import java.io.BufferedReader; import java.io.IOException; imp ...

  2. Cronz表达式

  3. AS3.0纯代码编写的两款loading效果

    AS3.0纯代码编写的两款loading效果 效果一 效果二 代码很简单,实现的原理一样,只不过矩形用到了Matrix类,对注册点进行了调整,效果可用于视频播放器缓冲时的loading效果,下面看代码 ...

  4. Ceph源码解析:概念

    Peering:一个PG内的所有副本通过PG日志来达成数据一致的过程.(某PG如果处于Peering将不能对外提供读写服务) Recovery:根据Peering的过程中产生的.依据PG日志推算出的不 ...

  5. 如何实现jenkins的多平台任务同时执行

    如果需要我们的程序在多个平台(linux.mac.window)同时执行,该如何操作 1.首先需要构建一个“多配置项目” 2.配置项目在过个平台上运行

  6. Dos网络查看命令

    net use //ip/ipc$ " " /user:" " 建立IPC空链接 net use //ip/ipc$ "密码" /user: ...

  7. oracle 10g函数大全--字符型函数

    ASCII(x1) [功能]:返回字符表达式最左端字符的ASCII 码值. [参数]:x1,字符表达式 [返回]:数值型 [示例] SQL> select ascii('A') A,ascii( ...

  8. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  9. <译>流计算容错

    这篇文档描述了Flink的流式计算的容错机制 Introduction Checkpointing Barriers State Exactly Once vs. At Least Once Reco ...

  10. TimesTen 应用层数据库缓存学习:4. 仅仅读缓存

    在运行本文样例前.首先先运行TimesTen 应用层数据库缓存学习:2. 环境准备中的操作. Read-only Cache Group的概念 仅仅读缓存组例如以下图: 仅仅读缓存组(Read-Onl ...