写在前面的警告
在您真正掌握使用这段代码之前,请勿直接用于您要清理的图片文件夹以免造成误删!请提前备份文件夹!
原始需求
由于本人特别喜欢二次元的各种美图,每次看到喜欢的都会情不自禁保存下来,而且本人写了一爬虫增量爬取了很多网站的美图(在法律和道德允许范围内)。但是出现了一个问题,就是图片出现了很多重复,导致我256G的手机存储捉襟见肘。
解决问题
那么,就试试用Python来解决一下问题吧。这里楼主用的MacOS自带的python2.7.10
,如果诸位也想用那就请自行百度安装哦。
然后安装pip,通过pip install -r requirements.txt 安装依赖库。
Pillow==6.2.1
代码
from PIL import Image
from PIL import ImageFile
import sys
from webUrlGetor.settings import *
ImageFile.LOAD_TRUNCATED_IMAGES = True
class SavePic(object):
def __init__(self):
pass
def getGray(self, image_file):
tmpls = []
for h in range(0, image_file.size[1]): # h
for w in range(0, image_file.size[0]): # w
tmpls.append(image_file.getpixel((w, h)))
return tmpls
def getAvg(self, ls): # 获取平均灰度值
return sum(ls) / len(ls)
def getImgHash(self, fne):
image_file = Image.open(fne) # 打开
image_file = image_file.resize((480, 480)) # 重置图片大小,两个值相乘越大,表示对比精确度越高
image_file = image_file.convert("L") # 转256灰度图
Grayls = self.getGray(image_file) # 灰度集合
avg = self.getAvg(Grayls) # 灰度平均值
bitls = '' # 接收获取0或1
# 除去变宽1px遍历像素
for h in range(1, image_file.size[1] - 1): # h
for w in range(1, image_file.size[0] - 1): # w
if image_file.getpixel((w, h))