imageio库之CR3相机图片文件转PNG文件
# -*-coding: Utf-8 -*-
# @File : main .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time:2023/6/16
import os
import imageio
import rawpy
import time
import asyncio
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
BASE_CR3_DIR = os.path.join(BASE_DIR, 'imgs_CR3')
BASE_PNG_DIR = os.path.join(BASE_DIR, 'imgs_PNG')
async def gets_images_change(CR3_DIR, PNG_DIR):
try:
start_time = time.time()
# 读取CR3格式文件
with rawpy.imread(CR3_DIR) as raw:
# 将图片转换为RGB颜色空间
rgb = raw.postprocess()
# 将rgb转换到srgb颜色空间,然后写入PNG文件
imageio.imwrite(PNG_DIR, rgb, format='png', srgb=True)
print(f'当前图片{CR3_DIR}转换成功!')
print(f'当前总耗时为{time.time() - start_time}s')
except Exception as e:
print(e)
async def main():
CR3_PATH_LIST = os.listdir(BASE_CR3_DIR)
for path in CR3_PATH_LIST:
cr3_path = os.path.join(BASE_CR3_DIR, path)
png_path_ = os.path.splitext(os.path.basename(path))[0] + '.png'
png_path = os.path.join(BASE_PNG_DIR, png_path_)
await gets_images_change(cr3_path, png_path)
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())