写这个脚本也仅仅是一时的需求:接收到的图片每张都十几M,几十张照片就几百M了,但是这么大的照片对我来说并没有什么实际意义,用画图一张一张的改分辨率太慢(就想到了这一个快速的方案2333),于是就写了个脚本,感觉一个脚本就这一个功能有些浪费,就又加些,目前脚本可以实现:
将图片的水平像素数量调整到特定值
将指定的图片以水印的形式添加到图片右下角
将指定的图片以水印的形式添加到图片中间
以上所有功能均需要OpenCV库的支持,请使用pip install opencv-python安装!
目前为止OpenCV只支持英文,所以输入的路径中不能包含中文,图片文件名也不能含有中文,这是由于OpenCV库仍然用的是GBK编码,在遇到UTF-8规范的编码时会出现错误。目前网上好像有解决方案,但是也只对OpenCV某些功能有用,而且应该只针对一台电脑有效,换台电脑要重新修改。
考虑到脚本的使用体验,打开脚本后会自动获取脚本所在的文件夹路径,在之后要求输入处理的文件夹路径时直接输入数字即可用当前文件夹路径作为工作路径,这里采用的方法和《用Python写一个文件命名处理脚本》一样,利用os.getcwd()得到文件夹路径,用os.path.realpath(__file__)获得运行脚本的绝对路径,详情见这篇文章《python获取当前路径》。
脚本大体思路和《用Python写一个文件命名处理脚本》差不多,选择功能后要求输入图片的文件夹路径,自定义函数get_all_images(dir_path)来获取输入的路径下的所有文件,加了一个对文件类型的判断,只有是图片文件才会进行操作,OpenCV支持