博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
压缩图片并根据图片md5 存储的一种优化解决方案
阅读量:6616 次
发布时间:2019-06-25

本文共 670 字,大约阅读时间需要 2 分钟。

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

转载地址:http://ytrso.baihongyu.com/

你可能感兴趣的文章
linux下mysql双主热备
查看>>
解决Binary XML file line #6: : Error inflating class <unknown> 的问题
查看>>
linux常用命令显示说明
查看>>
我的友情链接
查看>>
使用路由和远程访问服务为Hyper-V中虚拟机实现NAT上网
查看>>
python中列表的使用
查看>>
Oracle 11g 间隔分区,导出报错 EXP-00006
查看>>
隐藏忽略的文件
查看>>
移动电商快速发展的原因分析
查看>>
Struts中常用的几种Action
查看>>
判断对象是否相等
查看>>
静态路由配置
查看>>
sqoop2 1.99.6 中遇到问题及源码修改汇总
查看>>
我的友情链接
查看>>
学习基于android+cordova的开发
查看>>
文本框鼠标悬停提示信息
查看>>
如何解决Weblogic的autodeploy不能实现自动部署
查看>>
菜鸟的日子
查看>>
用数据洞悉国内公有云发展:半数用户的选择
查看>>
centos定制
查看>>