import imageio import numpy as np cut_width = 512 cut_height = 256 if __name__ == '__main__': txt = open('./test.dat', 'w') image = imageio.imread_v2('./im.tif') print(image.shape) cut = image[0:cut_height, 0:cut_width] print(cut.shape) cut = np.array(cut, dtype=np.int16) for data in list(cut.flatten()): txt.write('%02x\n%02x\n' % (data & 0x00ff, (data & 0xff00) >> 4)) txt.close() imageio.imsave('./test.tif', cut)