ImageMobject

AbstractImageMobjectMobject 的子类,可看作抽象类,用于存放 pixel_array

它有两个子类:ImageMobject 用于在场景中插入图片;ImageMobjectFromCamera 用相机不断获取图片,主要用在 MultiCamera 中作为子相机

MK做了一个关于常用 ImageMobject 的的视频: 〔manim教程〕第四讲 SVG、图片与文字

AbstractImageMobject

class manimlib.mobject.types.image_mobject.AbstractImageMobject(**kwargs)

图片的”抽象”类

get_pixel_array()

给子类实现

reset_points()

点集为图片左上右上左下三个点,实现了定位

set_color()

给子类实现

ImageMobject

class manimlib.mobject.types.image_mobject.ImageMobject(filename_or_array, **kwargs)

图片物体

初始化输入的 filename_or_array 指向了图片文件的位置

invert=True 表示反色

change_to_rgba_array()

将输入的 pixel_array 转换为rgba数组

fade(darkness=0.5, family=True)

利用不透明度来变暗

get_pixel_array()

获取像素数组 pixel_array

interpolate_color(mobject1, mobject2, alpha)

两张图片之间插值,pixel_array 必须一样大

set_color(color, alpha=None, family=True)

将像素全部转化为color颜色

set_opacity(alpha)

设置图片不透明度

关于传入的图片

  • 使用相对于运行位置的相对路径,或使用绝对路径,或把图片放在 assets/raster_images 文件夹中

  • 可以是 jpg/png/gif ,但 gif 格式不会添加动图,只会显示第一帧

  • 可以直接传入 pixel_array 数组,内容是rgba模式表示的每个像素颜色。可以利用这个达到像素级处理

ImageMobjectFromCamera

class manimlib.mobject.types.image_mobject.ImageMobjectFromCamera(camera, **kwargs)

从camera中获取图片的类

初始化需要传入一个相机,用于获取图像

add_display_frame(**kwargs)

在画面中显示当前图像(一个矩形框起来)

get_pixel_array()

从相机中获取图像