public static String getHash(Bitmap bmp){
/**
* 第一步,缩小尺寸。
* 最快速的去除高频和细节,只保留结构明暗的方法就是缩小尺寸。
* 将图片缩小到8x8的尺寸,总共64个像素。摒弃不同尺寸、比例带来的图片差异
*/
int width = bmp.getWidth();
int height = bmp.getHeight();
int newWidth = 8;
int newHeight = 8;
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap newbmp = Bitmap.createBitmap(bmp, 0, 0, width, height, matrix,true);
/**
* 第二步,简化色彩。
* 将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。
*/
int width1 = newbmp.getWidth(); //获取位图的宽
int height1 = newbmp.getHeight(); //获取位图的高
int []pixels = new int[width1 * height1]; //通过位图的大小创建像素点数组
newbmp.getPixels(pixels, 0, width1, 0, 0, width1, height1);
int alpha =
安卓感知哈希算法
最新推荐文章于 2022-12-09 16:42:34 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)