压缩图片并根据图片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

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

Gulp实现css、js、图片的压缩以及css、js文件的MD5命名

目前做代码压缩合并的工具有很多,诸如gulp,webpack,grunt等等,可以说这些项目构建工具的功能非常之强大:图片压缩、图片转base64、css和js的压缩以及合并,文件的md5重命名 ...
  • sinat_17775997
  • sinat_17775997
  • 2017年02月27日 09:15
  • 834

前端优化之图片压缩

一.图片压缩是优化必不可少的,而且图片往往是流量的大头,特别在移动端图片优化更为重要,推荐几个图片优化压缩的工具: 1.智图:http://zhitu.isux.us/ 2.TinyPNG:htt...
  • maoguiyou
  • maoguiyou
  • 2015年12月11日 11:36
  • 1095

根据路径获得图片并压缩返回bitmap用于显示

private static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, ...
  • sinat_30474567
  • sinat_30474567
  • 2016年12月05日 15:44
  • 848

HTML5图片上传图片实时预览,通过DataURL将图片压缩“嵌入”到HTML中,优化图片的加载速度和执行效率。

HTML5图片上传图片实时预览,通过DataURL将图片压缩“嵌入”到HTML中,优化图片的加载速度和执行效率。   传统的方法预览图片主要有两种方法: ①    先上传图片到服务器,服务器返回URL...
  • u010697681
  • u010697681
  • 2017年08月21日 15:12
  • 522

传递Bitmap + 图片压缩处理 并保存 + 壁纸设置 总结

基本思路是先把bitmap转化为byte数组,用Intent传递数组,在将数组转化为bitmap bitmap转化为byte数组的方法: private byte[] Bitmap2Bytes(B...
  • moubenmao
  • moubenmao
  • 2014年02月27日 16:38
  • 2841

通过URL下载图片并压缩

通过url地址下载网络图片并压缩 实现思路:通过URL发现资源文件并拷贝到本地路径,各自建立文件夹路径,之后通过压缩工具包压缩父亲目录的文件即可代码:package com.change.my.se...
  • zyq1084577627
  • zyq1084577627
  • 2017年09月12日 22:43
  • 205

java 对图片进行MD5算法

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

通过MD5加密的方式判断图片是否相同

需要判断两张图片是否相同,可以将图片加密,通过判断加密字符串是否相等,来判断图片是否相同。package com.wayfoon.temp;import java.io.File;import jav...
  • wayfoon322
  • wayfoon322
  • 2008年05月05日 18:09
  • 5352

android 对已知路径下图片进行压缩

include “reg52.h”typedef unsigned int u16; typedef unsigned char u8; sbit led=P0^0;void delay(u16 ...
  • u010184245
  • u010184245
  • 2017年08月09日 15:39
  • 196

C#中基于GDI+(Graphics)图像处理系列之图片压缩优化

简介笔者刚开始接触计算机时是在学校里,学校的网速你懂的,学校局域网里能有5MB/s,而访问学校以外的网站时能有256KB/s就相当满意了。那时候笔者在开发网站时,处理图片时就特别小心,能用gif的不用...
  • lhtzbj12
  • lhtzbj12
  • 2017年01月06日 21:55
  • 2179
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:压缩图片并根据图片md5 存储的一种优化解决方案
举报原因:
原因补充:

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