Для начала дела.Я новичок в работе с изображениями Python.Но я довольно хорош в Python в целом.Но я не могу найти хорошее решение для отображения файлов RAW .NEF с камеры Nikon в Python.Я хочу открыть файл RAW, преобразовать его в QImage или QPixmap, а затем отобразить без сохранения изображения.Я пробовал библиотеки, такие как PIL, rawpy и numpy.Но я слышал, что в сырых файлах обычно есть встроенный JPEG.Есть ли аккуратный способ извлечь это?Из того, что я нашел в интернете, люди конвертируют необработанный файл, а затем сохраняют его в формате JPEG.Но мне нужно показать это без сохранения.
with rawpy.imread(file) as raw:
rgb = raw.postprocess()
rgb = np.transpose(rgb, (1, 0, 2)).copy()
h, w, a = rgb.shape
qim = QtGui.QImage(rgb, w, h, QtGui.QImage.Format_RGB888)
Это то, что я пытался сейчас.Но это возвращает None.
fd = file(file_path, 'rb')
# Skip over header + directory
# See manufacture specification
offset = 16 # Magic bytes
offset += 12 # Version
offset += 32 # Camera name
offset += 24 # Directory start & meta
fd.seek(offset, 0)
jpeg_offset = unpack('i', fd.read(4)) # Read where JPEG data starts
jpeg_length = unpack('i', fd.read(4)) # Read size of JPEG data
fd.seek(jpeg_offset[0], 0)
jpg_blob = fd.read(jpeg_length[0])
im = QtGui.QImage(jpg_blob)
Это то, что я пытался извлечь из встроенного JPEG.Но это также возвращает None.
Заранее спасибо.