`
xinklabi
  • 浏览: 1591426 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

用JAVA写一个批量图片压缩工具

    博客分类:
  • Java
 
阅读更多

转自:http://houyujiangjun.iteye.com/blog/1880582

写这个工具的原因是因为昨天整理自己的照片,发现总共有11个G之多,想到这几年照的这些照片有的还是挺珍贵的, 丢失了肯定会痛心疾首,于是就想存到手机或网络硬盘里面, 但是11G的东西实在是太大了,需要压缩.就花了一晚上到处在网上找压缩工具, 足足整了好几个小时,这些五花八门的软件都有各自的缺点,比如:操作繁琐(我的图片挺多),cpu占用非常厉害,内存吃的太多,速度太慢,图像破碎(一块 一块的丢失),最关键的是exif信息几乎都会丢失,压缩了之后放到手机上,该自动旋转的不能旋转,拍照时间等等信息都丢光了.于是乎,我就怒了,决定自 己动手写一个批量压缩的软件.

用的得心应手的开发语言也就是java了.粗略一想,可以这么设计: swt做框架,html+css来渲染界面,swt来做桥接通信,graphicsMagick来做图片压缩,jni调用 graphicsMagick.

经过三个小时的吞云吐雾(我写代码有时候是烟不离手),写了一个这玩意儿:




看起来极不专业,但确实解决了我的大问题,速度还行,会完整保留exif信息,压缩之后清晰度极高,发出来让大家也用用吧,万一有需求呢,呵呵.

 

事实上开发这个小程序过程中会遇到很多问题,如如何精简jre,如何绑定需要的jar文件,如何多线程压缩图片,如何根据图片分辨率调整比例.就不一一细说了.

补充几点

  1. 选择html来渲染界面是因为,我实在是不想花时间去整 jFace,swt,swing,awt这些东西,最熟悉高效快捷美观的就是html了.调试html,一个firebug就让人欲罢不能(附件里面有一 个文件夹叫resouce,里面就是所有的html+图片了,本来可以封装到java代码里面,想想还是算了).
  2. 选择了html,也就只有选择swt了,毕竟swt对浏览器的接口封装是做的比较好的,这里就直接用的ie内核,绑定xulrunner等等体积太大,所以在写界面的时候一定要在ie678910里面都调试一下,毕竟我不知道用户的ie版本是多少.
  3. js和java的通信用的swt的接口,还是可以接受,毕竟需要传输的数据量微乎其微.
  4. graphicsMagick,这个是图片压缩的不二选择.继承自ImageMagick,却更小,更稳定,更高效.

    写这个的目的是为了方便生活.我用java写过很多类似的东西,比如有一次我需要用迅雷下载一个很大的文件(20G),而且需要拷到U盘里面第二天带走,我 不可能晚上守着迅雷看它下载完成,再去手动拷贝到U盘里面(我的U盘写入速度只有4M - -!),用java写十几行代码就搞定了,监听是否下载完成,再拷贝,一两分钟的事. 又比如一个摄影论坛必须会员才能下载高清图片,而会员又要邀请码,这帮人真是扯淡...高清图片的地址只不过是在缩略图前面加了一个"gq_"...自己动手 写一个爬虫,半个小时就把他网站所有的高清图都爬下来了...又比如微博里面有一个人总是换各种账号来给我发同样的广告,我又自己写了个小程序,凡是出现 某些关键字就直接删除评论并加入黑名单. 而这些都是用java写的.有时候,做web系统做久了,都忘了java还可以这么全能......

    方家指教,欢迎讨论.

 

分享到:
评论

相关推荐

    java课程设计之批量压缩文件

    `java课程设计之批量压缩文件.jpg`可能是一个示例图片,用于展示项目的界面或结果。而`java课程设计网提供免费案例报告论文下载.html.url`则是一个链接,可能指向一个网站,提供更多的课程设计资源,包括案例分析、...

    Java压缩图片工具

    在IT行业中,图片压缩是一个非常重要的任务,尤其是在网站优化、移动应用开发以及数据存储等领域。Java作为一种广泛应用的编程语言,提供了丰富的库和工具来处理图片压缩。本篇将详细讲解如何利用Java进行图片压缩,...

    java web 图片压缩

    - 在Java Web应用中,可以将图片处理服务封装为一个RESTful API,通过HTTP请求接收图片数据,处理后返回压缩或处理后的图片。 - 使用Spring MVC或Jersey等框架可以简化API开发,提供路由映射、输入验证和异常处理...

    图片批量压缩处理

    4. 图像处理软件与库:许多软件工具和编程库支持图片批量压缩,如Adobe Photoshop、GIMP等图形编辑软件,以及Python的PIL (Pillow)、Java的ImageIO、JavaScript的sharp等编程库。它们提供了API和命令行工具,方便...

    JAVA批量下载图片

    在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用和服务器端...通过这个小DEMO,开发者可以学习到如何利用Java实现一个实用的网络爬虫工具,不仅可以应用于CSDN论坛,也可以扩展到其他有类似需求的场景。

    详解Java实现批量压缩图片裁剪压缩多种尺寸缩略图一键批量上传图片

    4. Java实现批量压缩图片裁剪压缩多种尺寸缩略图一键批量上传图片需要封装一个文件流操作的工具类,例如FileUtils类,可以用于读取本地物理磁盘目录里的所有文件资源到程序内存,并将File文件流转为Base64的字符串流...

    Thumbnails 纯java图片压缩api 包括文档及相关学习资料

    总之,Thumbnails 纯Java图片压缩API是一个强大且高效的图片处理工具,它简化了Java开发者进行图片压缩和其他处理的任务,同时提供了丰富的文档和学习资源,使得学习和应用变得更为容易。无论你是新手还是经验丰富的...

    java代码保存宽高不变压缩图片(失真不大).docx

    EGCodec.createJPEGEncoder(out); JPEGEncodeParam param = ...总的来说,这段Java代码提供了一个实用的工具,能够在不失真过大(通过调整压缩质量)的前提下,根据图片原始大小智能地压缩图片,满足不同场景的需求。

    图片压缩工具类

    总的来说,"图片压缩工具类"是一个实用的Java组件,它简化了图片处理的流程,提高了开发效率,并且可以帮助优化应用的性能和用户体验。理解和掌握这个工具类的使用,对于任何处理图片的Java开发者都是必备的技能。

    批量文件压缩下载生成压缩包 java 工具类

    批量下载文件包括图片, mp3等, 生成压缩包 java 工具

    批量压缩图片工具源码.zip

    标题中的“批量压缩图片工具源码.zip”表明这是一个包含了用于批量处理图片压缩的软件源代码的压缩文件。这种工具通常采用编程语言实现,如Python、Java、C#或JavaScript等,目的是为了高效地减小图片文件大小,适用...

    png图片压缩工具

    "png图片压缩工具"就是这样一个专门针对PNG格式图片进行压缩的应用。 在J2ME(Java 2 Micro Edition)环境中,由于资源限制,对图片的大小控制尤为重要。PNG图片压缩工具在J2ME平台上运行,可以帮助开发者或用户...

    图片批量压缩工具1.1

    java编写的图片压缩工具,想要了解学习的朋友可以用反编译工具,进行反编译查看源码,了解实现原理。界面UI采用JFrame编写的。

    批量上传图片工具

    【批量上传图片工具】是一种高效处理大量图片的实用软件或功能,主要应用于网站管理、社交媒体管理、电商运营等领域。在日常工作中,一次性上传多张图片能够...学习这个模板可以深入理解批量图片上传的前端实现细节。

    批量图片转双层PDF工具

    总之,"批量图片转双层PDF工具"是针对需要将大量图像文件整合到一个可搜索和可编辑的PDF文档中的用户设计的,尤其适用于处理扫描文档或需要保留图像细节同时便于分享和检索的情况。通过这个工具,用户可以高效地完成...

    java图片处理工具类

    图片压缩主要是为了减小文件大小,便于在网络上传输或节省存储空间。Java中可以通过`ImageIO`类的`read`方法读取图片,然后使用`BufferedImage`类的`getScaledInstance`方法进行等比例缩放,最后通过`ImageIO.write...

    java生成1000张图片,分别在每张图片上写阿拉伯数字1~1000

    下面是一个简单的示例,展示了如何生成一张包含数字“1”的图片: ```java public void createImage(int number) { int width = 300; // 图片宽度 int height = 100; // 图片高度 BufferedImage image = new ...

    java图片编辑软件

    图片压缩是图像处理中的一个重要环节,主要目的是减小文件的大小,以便于传输和存储。图片压缩分为无损压缩和有损压缩两种类型。无损压缩可以在压缩后恢复原始图像,而有损压缩则会在压缩过程中丢失部分数据,导致...

    批量图片缩放工具(java)

    批量图片缩放工具,可以循环当前目录下的所有图片文件及其子文件夹中的图片,生成两种大小的图片

    jpg图片批量压缩.

    2. **使用第三方工具**:有很多专门的图片压缩工具,如IrfanView、Bulk Image Resizer等,它们提供了批量压缩功能,用户只需导入图片文件夹,设置好压缩参数,即可一键完成。 3. **编写脚本**:对于程序员来说,...

Global site tag (gtag.js) - Google Analytics