import numpy as np from PIL import Image from manimlib.utils.file_ops import seek_full_path_from_defaults from manimlib.utils.directories import get_raster_image_dir from manimlib.utils.directories import get_vector_image_dir def get_full_raster_image_path(image_file_name): return seek_full_path_from_defaults( image_file_name, default_dir=get_raster_image_dir(), extensions=[".jpg", ".png", ".gif"] ) def get_full_vector_image_path(image_file_name): return seek_full_path_from_defaults( image_file_name, default_dir=get_vector_image_dir(), extensions=[".svg", ".xdv"], ) def drag_pixels(frames): curr = frames[0] new_frames = [] for frame in frames: curr += (curr == 0) * np.array(frame) new_frames.append(np.array(curr)) return new_frames def invert_image(image): arr = np.array(image) arr = (255 * np.ones(arr.shape)).astype(arr.dtype) - arr return Image.fromarray(arr)