python 简易应用: 将ios 的heic图片批量转为jpeg

最终的代码还没完全通过

但是已经可以功能上使用了!

landrop是个跨平台的局域网文件传输app,支持ios  android windows linux ...比微信好用的地方是它不限文件个数,并且原汁原叶, 不篡改文件, 并且是开源软件。

ios上通过landrop  分享的文件, 是heic格式的原图, 在windows 10上用看图软件打开, 居然要安装heic解码器, 这个解码器居然是收费的, 要7元

这些图片以IMG_0950.pvt类似的名称的目录(文件夹)的形式存在, 一个图一个文件夹, 里有有heif文件, 还有一个视频文件

虽然landrop传输的文件保持了原汁原味 ,甚至拍摄时的动图也保留了, 但是在win上看图却是要解决的

解决办法, 我的思路是先把landrop下 以pvt名结尾的目录下的heif找到, 统一复制到landrop下heif目录下:

python依赖安装或解决参见这里, 详情点这里:

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

关于imagemagick, 参见这个帖子,详情点这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值