# Convert JPG to TIFF
# Date: 07/04/2022
# Written by Nandan M
import exiftool
import os
import numpy as np
import subprocess
from skimage import io
from PIL import Image
EXIFTOOL_PATH = os.environ.get("EXIF_TOOL_PATH", "/usr/bin/exiftool")
def read_and_copy_metadata(src_image_path: str, dst_image_path: str):
"""
Copies metadata from original image to converted image
:param src_image_path: Source image path
:param dst_image_path: Destination image path
:return:
"""
bytes_src_path = bytes(src_image_path, "utf-8")
bytes_dest_path = bytes(dst_image_path, "utf-8")
with exiftool.ExifTool(EXIFTOOL_PATH) as et:
et.execute(b"-tagsFromFile", bytes_src_path, bytes_dest_path)
def save_tiff(img_path, tiff_file_out, tiff_file_name, path_to_exif, Planck_0=1):
tiff_outpath = tiff_file_out + "/" + tiff_file_name
out_tiff = open(str(tiff_outpath), "w+")
print(img_path)
subprocess.run([str(path_to_exif), "-rawthermalimage", "-b", str(img_path)], stdout=out_tiff)
img = io.imread(tiff_outpath)
img[img + Planck_0 <= 0] = np.min(img[img + Planck_0 > 0])
io.imsave(tiff_outpath, img)
return img, str(tiff_outpath)
def save_temp_tiff(img, tiff_outpath):
img = img.astype('float16')
io.imsave(tiff_outpath, img)
img_file = './DJI_0244.jpg'
tiff_out = "./converted/DJI_0244.tiff"
im = Image.open(img_file)
im.save(tiff_out, 'TIFF')
read_and_copy_metadata(img_file, tiff_out)