作者用的手机是Redmi K20 Pro。去年11月份之前一直用着小米云盘的黄金会员,容量50GB。后来就不用了,原因是我的图片总容量超过了50GB,升级到更高级的会员200GB空间大概每年需要300块,作为一个穷学生可承受不起,后来我的图片备份方案是上传到阿里云盘。
小米云盘很坑,但是它有一个功能非常好,就是进行图片瘦身。高清图片保留在云端,本地只留下压缩后的图。而小米官方的瘦身非常给力,原图和瘦身图几乎看不出差别。
我非常喜欢图片瘦身的功能,可惜在我不用黄金会员之后就不能再使用这个功能了。自去年11月以来,图片的总占用空间已经逼近10GB。
我便想手动撸一个瘦身脚本。
利用Python的Pillow库,它Image.save
函数将默认给图片进行压缩,压缩后的容量大概是原容量的1/5
。
在用save
函数的时候,我们需要注意一个点,默认的保存不会保存原图的exif信息,exif信息记录着我们的拍摄时间、拍摄地点等信息,而exif的拍摄时间正是小米手机相册的排序方式。我们在保存的时候注意得保存exif信息。
这个脚本的具体流程大概如下。
我在实践过程中发现直接adb push一个文件到相册目录下,系统的相册无法识别到这个文件,后来查到相关资料,我们需要手动发送一个广播刷新MediaStore,才能让相册刷新,这也是第七步存在的原因。
adb shell ls /storage/emulated/0/DCIM/Camera > files.txt
命令
files.txt
中手动选择哪些你需要压缩的图片们,请务必删除掉mp4等视频文件。
推荐在 files.txt 里填入少量文件先尝试一下脚本效果。如果一切顺利,请添加你需要压缩的所有图片。
files.txt
是由cmd命令行重定向生成的,文件编码格式比较神秘,你需要在vscode中通过编码保存为utf-8格式。
或者你可以把files.txt你已经选择好的文件名复制到 记事本 中,然后保存为一份新的 files.txt 。然后在替换本项目中的神秘格式的旧files.txt
pip3 install -r requirements.txt
安装Pillow库依赖
python3 ./slim.py
即可开启瘦身之旅。
从瘦身之前的9.17GB变成了瘦身后的 3.81GB,总共节省出了 5.35GB。
这还只是4个月的图片。一年就可以节省出 15GB的空间。
wuuconix/Mobile-Photo-Slim: 手机图片瘦身 (github.com)
来个Star吧2333