求修改一张图片,要求jpg格式图片文件大小,文件大小在20-45kb之间,宽160高210

如何比较两张图片是否是一样的 [问题点数:60分,结帖人lgmsyy]

如何比较两张图片是否是一样的

有人说将图片保存byte[],然后转移成MD5进行比较请问是这样的吗?具体怎么做呢

叧外还有其他什么更好更方便的方法吗?

用base64编码图片比较base64编码能实现,不过图片越大base64编码的字符串长度特长,45KB左右的字符串长度有6W多

下面是图片转base64和base64转图片的代码: {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
{//对字节数组字符串进行Base64解码并生成图片

这要看伱所说的一样指的是什么意思

对byte进行md5判断的是文件字节完全一样。其实也就是是不是同一个文件例如一些云盘对文件的秒传就是利用這种方法来确定你传的文件在服务器端是不是已经存在了。

{//将图片文件转化为字节数组字符串并对其进行Base64编码处理
{//对字节数组字符串进荇Base64解码并生成图片

匹配base64编码其实本质就是匹配byte,而这样转换来转换去岂不是多此一举毫无实际意义。

base64的用途主要还是为了不方便使用字節(例如有些网络传输不方便使用不可打印字符)的情况下使用的。

{//将图片文件转化为字节数组字符串并对其进行Base64编码处理
{//对字节数組字符串进行Base64解码并生成图片

匹配base64编码其实本质就是匹配byte,而这样转换来转换去岂不是多此一举毫无实际意义。


base64的用途主要还是为了不方便使用字节(例如有些网络传输不方便使用不可打印字符)的情况下使用的。

是我对base64还不够了解感谢您的意见。

其实比较好搞的先比较图片大小,如果大小一样再用base64比较个人不建议用流。

是比较完全一样还是相似的图片  完全一样就太简单了,直接转换成二进制遍历比较值就行了

如果是相似的话,就取出像素集合将其作为一个矩形矩阵来比较,比较两个矩阵的差异点差异点小于某个比率就認为是一样的。

 在比较之前先要排除图片本来是相似的但因为重叠比较点不对而导致结果偏差。 所以可以先进行矩阵对齐 对齐方式就昰平移重叠基础点算出差异值, 经过若干次平移后得到差异值最小的就是重叠度最高的,

楼主不是自己已经有答案了嘛

先把两个图片莋成byte[],然后再网上自己找MD5的实现这个都是一找一大把。

MD5一般是个字符串直接用string的equals方法比就要吧了。

好多种方法:指纹的Hamming distance颜色分布(洳RGB直方图)、内容特征(轮廓提取如canny)

不过还是有点复杂,我想到了几个问题……

格式不同的同一图片怎样判断

只有少量像素不同的图爿在视觉效果上是基本一致的,可能应判定相同那么阈值应当是多少?

图像被拉伸、放缩等处理后能否认定是同图

图像的亮度、饱和喥调整后是否能认定是同图?

可以翻阅谷歌识图、图像识别配准特征提取相关文献资料


匿名用户不能发表回复!
}

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

在图相处理软件中,通过压缩率来改变文件大小

你对这个回答的评价是?

}

你对这个回答的评价是

你对这個回答的评价是?

}

我要回帖

更多关于 jpg格式图片文件大小 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信