手机图片瘦身小脚本 Mobile Photo Slim Project

介绍

作者用的手机是Redmi K20 Pro。去年11月份之前一直用着小米云盘的黄金会员,容量50GB。后来就不用了,原因是我的图片总容量超过了50GB,升级到更高级的会员200GB空间大概每年需要300块,作为一个穷学生可承受不起,后来我的图片备份方案是上传到阿里云盘。

小米云盘很坑,但是它有一个功能非常好,就是进行图片瘦身。高清图片保留在云端,本地只留下压缩后的图。而小米官方的瘦身非常给力,原图和瘦身图几乎看不出差别。

我非常喜欢图片瘦身的功能,可惜在我不用黄金会员之后就不能再使用这个功能了。自去年11月以来,图片的总占用空间已经逼近10GB。

我便想手动撸一个瘦身脚本。

如何实现的?

利用Python的Pillow库,它Image.save函数将默认给图片进行压缩,压缩后的容量大概是原容量的1/5

在用save函数的时候,我们需要注意一个点,默认的保存不会保存原图的exif信息,exif信息记录着我们的拍摄时间、拍摄地点等信息,而exif的拍摄时间正是小米手机相册的排序方式。我们在保存的时候注意得保存exif信息。

这个脚本的具体流程大概如下。

  1. adb shell ls 获取相册下的所有图片名 放到 files.txt 文件中

  2. 你需要手动选择 files.txt 中哪些文件需要被压缩

  3. adb pull 命令把文件拉到电脑上

  4. Pillow库压缩,程序会把容量大于2MB的图片进行压缩。

  5. adb shell rm 删除手机上的原图

  6. adb push 命令把压缩后的文件放回手机

  7. adb am broadcast 发送广播,让系统相册刷新

我在实践过程中发现直接adb push一个文件到相册目录下,系统的相册无法识别到这个文件,后来查到相关资料,我们需要手动发送一个广播刷新MediaStore,才能让相册刷新,这也是第七步存在的原因。

使用方法

  1. 推荐在使用之前先把原图备份,比如备份到阿里云盘。因为此项目会直接替换原图为瘦身图,会删除原图。

  2. 确保你的手机连接到电脑并开启usb调试

  3. 克隆此项目,进入文件夹。

  4. 执行adb shell ls /storage/emulated/0/DCIM/Camera > files.txt命令

  5. files.txt 中手动选择哪些你需要压缩的图片们,请务必删除掉mp4等视频文件。

    推荐在 files.txt 里填入少量文件先尝试一下脚本效果。如果一切顺利,请添加你需要压缩的所有图片。

  6. 由于files.txt是由cmd命令行重定向生成的,文件编码格式比较神秘,你需要在vscode中通过编码保存为utf-8格式。

    或者你可以把files.txt你已经选择好的文件名复制到 记事本 中,然后保存为一份新的 files.txt 。然后在替换本项目中的神秘格式的旧files.txt

  7. 执行 pip3 install -r requirements.txt 安装Pillow库依赖

  8. 执行python3 ./slim.py 即可开启瘦身之旅。

运行截图

运行

效果演示视频

手机图片容量变化

原先的9.17GB

瘦身后的3.81GB

从瘦身之前的9.17GB变成了瘦身后的 3.81GB,总共节省出了 5.35GB

这还只是4个月的图片。一年就可以节省出 15GB的空间。

Github链接

wuuconix/Mobile-Photo-Slim: 手机图片瘦身 (github.com)

来个Star吧2333


手机图片瘦身小脚本 Mobile Photo Slim Project
https://wuuconix.link/2022/03/08/slim/
作者
wuuconix
发布于
2022年3月8日
许可协议