前言
在我们运营自媒体的时候,或多或少会用到别人的图片。但是某些自媒体平台会判断图片的MD5,如果MD5相同,会认为你抄袭,默认会降低你的权重,导致流量很低。
所以,如何修改图片的MD5值,往往成为了运营自媒体关键技术之一。当然,有的人肯定会说,通过PS换个格式保存一下图片自然就改变了MD5。
这确实是一个解决之道,但如果你写头条文章,动不动用上很多图片,难道一个一个修改?所以,会点程序,往往能让运营自媒体事半功倍。
下面,博主就来教会大家,如果快速的更改图片的MD5值。
获取所有图片
一般来说,我们一篇自媒体文章要用到的图片常常会放在单个文件夹中。所以,我们首先需要获取某个目录中所有的图片文件。
dirpath = r"图片的目录"
filenames = os.listdir(dirpath)
for filename in filenames[:]:
filepath = dirpath + '/' + filename
if filepath.endswith('.png') or filepath.endswith('.jpg') or filepath.endswith('jpeg'):
fd = open(filepath, "rb")
f = fd.read()
pmd5 = hashlib.md5(f)
print(filename, pmd5.hexdigest())
这里,我们获取了所有的图片文件,同时也会忽略掉非图片文件,并输出了当前图片的MD5值。运行之后,效果如下:
更改图片MD5值
其实,图片只要经过一点点修改,其MD5都会变化。比如,你可以通过openCV给图片的低位平面添加一个水印。当然,这对于不会OpenCV的有点复杂,感兴趣的可以看看我的专栏:OpenCV-Python开发指南。
最简单的,直接在图片后面末尾写入当前时间。示例如下:
writefile = int(time.time() * 1000)
dirpath = r"图片的目录"
filenames = os.walk(dirpath)
for root, dirs, files in filenames:
for file in files:
file = os.path.join(root, file)
if file.endswith('.png') or file.endswith('.jpg') or file.endswith('jpeg'):
with open(file, "a") as f:
f.write(str(writefile))
运行之后,我们的图片不仅不会有任何的变化,而且其MD5值会被更改。具体的运行效果,如下图所示:
生成exe可执行文件操作
不过说实话,Python虽然简单,但程序员懒到极致,有时候连环境都懒得布置。而且对大多数人来说,还是界面的程序更加的友善。
所以,我们将上面的所有程序,通过pyqt5写成一个界面的程序。这样,不管程序员还是专业的自媒体人&