最终的代码还没完全通过
但是已经可以功能上使用了!
landrop是个跨平台的局域网文件传输app,支持ios android windows linux ...比微信好用的地方是它不限文件个数,并且原汁原叶, 不篡改文件, 并且是开源软件。
ios上通过landrop 分享的文件, 是heic格式的原图, 在windows 10上用看图软件打开, 居然要安装heic解码器, 这个解码器居然是收费的, 要7元
这些图片以IMG_0950.pvt类似的名称的目录(文件夹)的形式存在, 一个图一个文件夹, 里有有heif文件, 还有一个视频文件
虽然landrop传输的文件保持了原汁原味 ,甚至拍摄时的动图也保留了, 但是在win上看图却是要解决的
解决办法, 我的思路是先把landrop下 以pvt名结尾的目录下的heif找到, 统一复制到landrop下heif目录下:
https://blog.csdn.net/weixin_62598385/article/details/135945383
import os
import shutil
# 定义landrop目录的路径,使用当前目录
landrop_dir = os.getcwd()
# 定义heic目录的路径
heic_dir = os.path.join(landrop_dir, "heic")
# 如果heic目录不存在,创建该目录
if not os.path.exists(heic_dir):
os.makedirs(heic_dir)
# 遍历landrop目录下的所有文件夹
for item in os.listdir(landrop_dir):
item_path = os.path.join(landrop_dir, item)
# 只处理IMG_xxxx.pvt格式的文件夹
if os.path.isdir(item_path) and item.startswith("IMG_") and item.endswith(".pvt"):
print(f"正在处理目录: {item_path}")
# 列出目录中的所有文件
files = os.listdir(item_path)
print(f"目录 {item_path} 中的文件: {files}")
# 遍历文件夹中的所有文件
for file in files:
# 忽略扩展名的大小写来判断是否为.heic文件
if file.lower().endswith(".heic"):
heic_file_path = os.path.join(item_path, file)
print(f"找到.heic文件: {heic_file_path}")
# 复制heic文件到heic目录
shutil.copy2(heic_file_path, heic_dir)
print(f"已复制 {heic_file_path} 到 {heic_dir}")
print("所有.heic文件已复制完毕。")
然后再处理, 可以用python也可以用imagemagick, 因为python的依赖没搞定,本帖用imagemagick来办:
在heic建一个bat文件:
magick mogrify -format jpg *.heic
大功搞成!
关于imagemagick, 参见这个帖子:
https://blog.csdn.net/weixin_62598385/article/details/135630171