压缩图片并根据图片md5 存储的一种优化解决方案

原创 2017年07月11日 16:20:03

后端我们在处理图片文件的时候,很多都需要对一些图片进行压缩。然后再保存。同时我们保存图片为了保证一张图片仅存储一次。我们都需要根据文件的md5 来存储。

这里我们理下思路:

获取图片文件
压缩图片文件
获取压缩后的图片文件md5
然后根据md5 进行自有的业务逻辑处理(一般就是如果存在就不再处理了)

这种思路是我们大部分都这样处理就行了。

因为一些业务让我对这种处理方式产生了质疑。这样会对图片质量大大的降低。

A图片 第一次处理
A处理为B后 
我们对A 图片最终保存的文件为B
第二次出现A 图片时候 我们依然这样处理同样结果得到B

假如我们因为业务我们可能在处理时候会处理B图片呢。那么按照上面的思路

B图片 第一次处理
B处理为C后
我们对B 图片最终保存的文件为C
第二次出现B 图片时候 我们依然这样处理同样结果得到C

但是我仔细想一想 如果有B图片这种情况发生那么,我们就没有办法避免C再次流入B 这样的流程。再说一张图片经过B 图片这里多次后 图片的质量将大大的损失。这样的结果在某些业务情况下我们肯定不能避免但是又不想发生

最终我想出一种解决方案:

 A 图片第一次处理
 判断我们图片库中是否存在一个A 图片的md5
 如果存在则结束处理
 如果不存在我们进行压缩 获得图片B
 然后我们判断图片B 的Md5 是否存在
 如果存在则结束处理
 不存在我们对B 图片进行存储

这样的处理流程就算A 图片和B图片在系统中处理多上次那么 最终都是一样的结果。

完美的解决!

如果对此方案有什么建议和好的想法欢迎提出(下方评论)或者QQ:1593503371

版权声明:本文为博主原创文章,请珍惜博主的劳动成果。

相关文章推荐

适配器模式(Adapter Pattern)- 最易懂的设计模式解析

前言今天我来全面总结一下Android开发中最常用的设计模式 - 适配器模式。 其他设计模式介绍 1分钟全面了解“设计模式” 单例模式(Singleton) - 最易懂的设计模式解析 ...

Spring MVC整理系列(03)————Spring MVC的REST风格url

REST:资源表现层状态转化1、资源:网络上的一个实体,或者说是网络上的一个具体信息;通过URL指向该资源,也可以说url代表资源。 url中避免出现?和&,参数直接作为url地址指向资源。比如:ht...

Tomcat未正常启动解决方案与MD5加密,UUID生成id

有没有朋友遇到过Tomcat未能正常启动呢? 在tomcat的bin目录中,有个startup.bat文件,这个是tomcat的启动文件, 注意哦小伙伴们,不要再乱点tomcat.exe了,这个并不是...

iOS:webView中图片自适应屏幕的一种解决方案

ImageAutoFitInWebView结合JS解决用webVIew加载图片时图片自动适配屏幕的问题1、在标哥的博客中WebView图片自适应屏幕中,标哥提供了一种解决方案,然后我就试验了一下。发现...

一种上传图片立即回显的解决方案

在实际项目中遇到过这样一个问题: 上传的图片需要马上回显,而前端负载均衡考虑未支持会话保持来防止恶意攻击,也就是说上传请求落在A服务器上,而紧接着的回显请求落在B服务器上,需要保证同时回显最新的图片...

一种上传图片立即回显的解决方案

在实际项目中会遇到这样一个问题:上传的图片需要马上回显,而前端负载均衡考虑未支持会话保持来防止恶意攻击,也就是说上传请求落在A服务器上,而紧接着的回显请求落在B服务器上,需要保证同时回显最新的图片。 ...

java 对图片进行MD5算法

在这次项目中需要对图片MD5来确定一张图片的唯一性,如果两个图片MD5相同就认定问两张图片是同一张图,只不过是被转载的。 在多次查找资料后写出来下面的通用类   1、将图片转换成二进制数组 p...

MD5的使用(图片缓存)

1.首先先导入这个第三方库. 2.代码如下;@interface ViewController (){ UIImageView* _imageView; NSMutableData*...

视频图片文件MD5修改工具

  • 2016年02月29日 13:33
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:压缩图片并根据图片md5 存储的一种优化解决方案
举报原因:
原因补充:

(最多只允许输入30个字)