繁体   English   中英

如何在Java中优化图像以提高性能

[英]how to optimize image in java for performance

即时通讯图像抛出tcp / ip,我想对其进行优化,并且仍然尽可能保持良好的质量,我可以使用哪种方法或算法? ps现在,如果我考虑一下,也许我应该问一下通过tcp / ip发送图像的最佳和快速方法是什么

为了找到正确的答案,您需要查看图像本身。 它们是在相机上捕获的真实世界图像吗? 还是它们是合成图像,例如图标或图形?

有损压缩 (如JPEG)非常适合具有许多渐变和平滑边缘的真实场景。 对于具有纯色和硬边的图像,与无损压缩相比,您的图像质量损失更高(甚至觉察到),而压缩率的增益却更少。

基本上,为您的域建立的图像格式是PNG (便携式网络图形)和JPEG PNG图像始终是无损压缩的,但是其压缩算法比竞争的GIF效果更好。 如果图像非常合适,则您获得的压缩率可与JPEG媲美(如果不是,则类似于真实世界的图像),则可获得典型的ZIP压缩率(约50%)。

确定有损/无损压缩(或基于图片类型的组合)后,您还可以考虑先以两种格式压缩图像,然后进行比较,如果处理时间与网络吞吐量无关紧要,则还应考虑渐进编码的优势,JPEG和PNG格式都支持这种渐进编码。 使用渐进编码,基本上,数据的组织方式是:接收到的数据越多,质量越好(而不是仅逐行发送图像)。 这样做的好处是,您可以在仍在接收图像的同时将其显示给用户。 但是,为此,您需要具有此功能的解码器。

我不知道Java中可用的库。

您应该检查Java Advanced Imaging API

但是要有效使用它,您需要了解哪种图像操作适合您的问题。 除其他外,这将取决于源图像的编码。

至于“尽可能好的质量”,您很可能需要尝试各种压缩技术及其相关参数,然后再决定哪种压缩技术可以在速度,大小和质量上达到您所需要的适当平衡。

您可以看看这个 它是常见压缩算法(质量和压缩率)之间的比较。

编辑:它不是直接java,但您可能可以找到所需算法的实现。

对于供人类观看的图像,JPEG非常好。 远端是什么? 浏览器?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM