声明
这俩天在做图片对比的工具,这里将对比的核心功能代码贴上来共同学习,有什么缺点和不足请大家指出,谢谢。Lee出品,转载请注明出处:http://blog.csdn.net/hnulwt/article/details/43668161
前言
我采用图片比较的方式是通过像素点逐个对比的方式来进行的。由于android内存大小的限制,我们可能 在做图片对比的时候还要考虑内存的问题,因为较大图片加载上来可能会导致OOM。网上查了查,绝大多数是使用压缩图片质量来达到目的的。
不过本文并未针对图片大小本身做考虑,因为目前需要对比的图片不是足够大,如果有遇到特别大图片且需要对比,那么接下来可能会考虑一定的优化方案(目前大致考虑了一下,如果图片过大,可以继续试着拆分每行的像素值,进一步让int[]变小。但是如果图片过大,获取bitmap就OOM的话,了解到可以通过获取图片大小的方式,并非直接加载图片到内存中,可以尝试这种方式,不过目前没有研究过,在次权当讨论),也就会写博客进一步记录如何优化的。
代码解释
本段代码主要是通过逐行获取bitmap的像素点来进行对比的,最终返回的是图片的相似度(若俩张图片大小不一致,则直接返回大小不一致)。
代码
import java.text.DecimalFormat;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
public class BitmapCompare
{
private static final S