import bpy import numpy as np def read_pixels_from_image(img): width, height = img.size[0], img.size[1] if bpy.app.version >= (2, 83, 0): pixels = np.empty(len(img.pixels), dtype=np.float32); img.pixels.foreach_get(pixels) return np.reshape(pixels, (height, width, 4)) else: return np.reshape(img.pixels[:], (height, width, 4)) def write_pixels_to_image(img, pixels): if bpy.app.version >= (2, 83, 0): img.pixels.foreach_set(np.reshape(pixels, -1)) else: img.pixels = np.reshape(pixels, -1) if img.preview: img.preview.reload()