def read_image(in_file):
# read double image
image = imageio.imread(in_file) / 255.
-
+
# gamma decode
- linear = image < .0031308 * 12.92
- image[linear] /= 12.92
- image[~linear] = ((image[~linear] + .055) / 1.055) ** 2.4
+ temp = image if len(image.shape) == 2 else image[:, :, :3] # skip alpha
+ linear = temp < .0031308 * 12.92
+ temp[linear] /= 12.92
+ temp[~linear] = ((temp[~linear] + .055) / 1.055) ** 2.4
return image
image = numpy.copy(image)
# gamma encode
- linear = image < .0031308
- image[linear] *= 12.92
- image[~linear] = 1.055 * image[~linear] ** (1. / 2.4) - .055
+ temp = image if len(image.shape) == 2 else image[:, :, :3] # skip alpha
+ linear = temp < .0031308
+ temp[linear] *= 12.92
+ temp[~linear] = 1.055 * temp[~linear] ** (1. / 2.4) - .055
# write double image
image[image < 0.] = 0.