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

标签: java md5存储 保存图片 图片Md5 图片压缩
3278人阅读 评论(1) 收藏 举报
分类:

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

查看评论

前端优化之图片压缩

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

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:48
  • 269

Android图片压缩(质量压缩和尺寸压缩)、图片保存(本地和sqlite数据库)

Android图片压缩(质量压缩和尺寸压缩) 在做项目中遇到一个头疼的问题,读取本地图片时,由于图片太大,奔溃,对于我这种456M内存的破手机哪里受得了几M的照片 我要总结的有这么几点: ...
  • Junp_Lee
  • Junp_Lee
  • 2015-09-21 14:58:38
  • 750

通过URL下载图片并压缩

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

Grunt中批量无损压缩图片插件--Grunt-contrib-imagemin

Photoshop 切出的图片,无论是 PNG 还是 JPEG/JPG 格式,都含有许多相关信息,又或多余的颜色值,这些信息和颜色值,对网页前端并没有用处,反而增加图片大小,所以 Google Pag...
  • hsany330
  • hsany330
  • 2014-07-10 14:32:59
  • 1548

MD5的使用(图片缓存)

1.首先先导入这个第三方库. 2.代码如下;@interface ViewController (){ UIImageView* _imageView; NSMutableData*...
  • qq_24513939
  • qq_24513939
  • 2015-04-21 11:30:10
  • 629

java压缩图片内存大小,但不改变分辨率大小,第二种方式

/** * @Title: compressPic  * @Description: 压缩图片,通过压缩图片质量,保持原图大小 * @param  quality:0-1     * @ret...
  • kevin747904126
  • kevin747904126
  • 2016-12-14 16:51:47
  • 2547

图像获取(根据路径或从相册获取后从uri获取路径)、压缩(参数路径或Bitmap)、旋转角度、图像保存

之前做过很多图像处理的项目、涉及到图像处理包括图像获取(根据路径或从相册获取后从uri获取路径)、压缩(参数路径或Bitmap)、旋转角度、图像保存等等。。。 整理一下,方便以后拿过来就用图像的压缩...
  • yshr1991
  • yshr1991
  • 2016-05-06 22:02:40
  • 1102

android 图片处理(压缩与缓存)

一、压缩 android程序经常用到许多图片,图片有不同的大小,形状。在大多数情况下,这些图片都会大于我们程序所需要的的大小。比如图片库展示的图片大都是手机摄像头拍出来的,图片分辨率比我们手机分辨率...
  • gangjindianzi
  • gangjindianzi
  • 2016-09-27 13:51:37
  • 1180

Qt:使用基于zopfli的PNG图片压缩库

使用方法JQZopfli::optimize( "/Users/Jason/Desktop/Source.png", "/Users/Jason/Desktop/Target.png" ); GitH...
  • wsj18808050
  • wsj18808050
  • 2016-07-21 00:40:41
  • 1187
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 6万+
    积分: 1135
    排名: 4万+
    博客专栏
    联系方式
    最新评论