Windows下用Python转DNG为JPG:图像失真、过暗问题求助
在Windows系统中用Python转换iPhone DNG为高质量JPG并保留元数据的问题
需求说明
在Windows系统中使用Python将iPhone拍摄的DNG格式转换为JPG格式,要求:
- 最大化图像质量
- 保留EXIF等元数据(若转换过程不自动保留,可接受单独复制元数据的步骤)
已尝试的Python实现
目前找到的最优代码如下:
from PIL import Image import rawpy def convert_dng_to_jpg_b(input_dng_file, output_jpg_file): with rawpy.imread(input_dng_file) as raw: rgb = raw.postprocess( use_camera_wb=True, output_color=rawpy.ColorSpace.sRGB, ) image = Image.fromarray(rgb) image.save(output_jpg_file, format='JPEG', quality=100)
存在的问题
测试后发现输出JPG有两个明显问题:
- 图像失真,推测是转换过程未校正镜头畸变
- 图像过暗,推测是未应用或未遵循曝光调整设置
已尝试的其他工具
- imageio的FreeImage插件:读取DNG文件时遇到诸多问题,无法正常使用
- imagemagick命令行:
输出JPG不仅存在失真、过暗问题,还未进行白平衡调整magick dng:1.dng 1.jpg - dcraw命令行:
输出JPG同样存在失真、过暗问题dcraw -v -w -q 3 -T 1.dng
补充说明
输入的DNG文件在Photos、Mac OS Preview、Mac OS Quick View、Windows缩略图及Windows Photos等应用中均能正常显示(无失真、亮度正常)。
接受的解决方案
愿意使用Python调用Windows系统中可通过命令行运行的外部工具,只要能满足转换需求即可;也接受转换后单独复制EXIF/元数据的步骤。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

