[英]Image too big for processing when converting large (1.3 GB) DNG file to PNG using python
我需要使用 python 將 DNG 文件轉換為 PNG。 我在這里找到了一篇如何轉換 DNG 的帖子: Opencv Python 打開 dng 格式
我試過的代碼:
#open dng and convert
import rawpy
import imageio
import os
os.chdir(r'C:\Path\to\dir')
path = r'path\to\file'
with rawpy.imread(path) as raw:
rgb = raw.postprocess()
rgb_img.save('image.png')
但是,它會吐出以下錯誤:
line 13, in <module>
rgb = raw.postprocess()
File "rawpy\_rawpy.pyx", line 887, in rawpy._rawpy.RawPy.postprocess
File "rawpy\_rawpy.pyx", line 790, in rawpy._rawpy.RawPy.dcraw_process
File "rawpy\_rawpy.pyx", line 438, in rawpy._rawpy.RawPy.ensure_unpack
File "rawpy\_rawpy.pyx", line 432, in rawpy._rawpy.RawPy.unpack
File "rawpy\_rawpy.pyx", line 936, in rawpy._rawpy.RawPy.handle_error
rawpy._rawpy.LibRawTooBigError: b'Image too big for processing'
是否有轉換 DNG 文件的替代方法或繞過此錯誤的方法?
memory 圖像中的完全擴展似乎有 2GB 的限制。 我不是指您的 DNG 在磁盤上需要的空間,我指的是以下數字:
ImageHeight * ImageWidth * NumberOfChannels * BytesPerSample
因此,如果您使用exiftool
通過單擊問題下方的edit
並從以下位置添加 output 來告訴我們這些參數,將會很有用:
exiftool YOURIMAGE.DNG
該限制在變量imgdata.params.max_raw_memory_mb
中強制執行,該變量在底層libraw
C 代碼中設置為 2048。 我不確定如何通過 Python 接口進行設置。
使用ImageMagick將其轉換為 PNG 或 TIFF 可能會取得一些成功,如下所示:
magick YOURIMAGE.DNG converted.png
如果可行,您可以使用wand ,它是綁定到 Imagemgaick 的Python 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.