config

janim.utils.config.optional_type_validator(type, typename: str)
class janim.utils.config.Config(*, fps: int = None, preview_fps: int = None, anti_alias_width: float = None, frame_height: float = None, frame_width: float = None, pixel_height: int = None, pixel_width: int = None, background_color: Color = None, font: str | Iterable[str] = None, subtitle_font: str | Iterable[str] = None, audio_framerate: int = None, audio_channels: int = None, wnd_pos: str = None, wnd_monitor: int = None, typst_bin: str = None, ffmpeg_bin: str = None, ffprobe_bin: str = None, output_dir: str = None, temp_dir: str = None, asset_dir: str | list[str] = None, client_search_port: int = None)

基类:object

配置

大部分的参数不作说明,稍微说明一下这些参数:

  • fps: 输出视频时的帧率

  • preview_fps: 在预览窗口时的帧率

  • 在代码内设置 background_color 时,不能使用 background_color='#RRGGBB',应使用 background_color=Color('#RRGGBB')

  • output_dir: 开头时,表示相对于 .py 文件的路径,例如 output_dir=':/videos'

基础用法

使用 Config.get.xxx 得到属性,例如 Config.get.fps 则得到当前设置的帧率

使用 with Config(key=value): 在指定的配置下执行内容,例如:

print(Config.get.fps)   # 60

with Config(fps=120, pixel_width=1280):
    print(Config.get.fps)           # 120
    print(Config.get.pixel_width)   # 1280
    print(Config.get.pixel_height)  # 1080

其中没有设置的属性则采用默认设置 default_config

全局配置

在使用命令行参数时,使用 -c 配置名 可以修改全局配置,设定的全局配置会覆盖其它配置

例如 janim write your_file.py YourTimeline -c fps 120 可以将渲染帧率设置为 120

可以同时修改多个,例如:

janim write your_file.py YourTimeline -c fps 120 -c output_dir custom_dir

这个命令会将动画以 120 的帧率输出到 custom_dir 这个指定的文件夹中

时间轴配置

定义类变量 CONFIG,例如:

class YourTimeline(Timeline):
    CONFIG = Config(
        fps=120,
        preview_fps=30
    )

    def construct(self) -> None:
        ...

这样则是设定这个时间轴的配置,渲染时帧率 120,预览(显示为窗口)时帧率 30

另见:CONFIG

fps: int
preview_fps: int
anti_alias_width: float
frame_height: float
frame_width: float
pixel_height: int
pixel_width: int
background_color: Color
font: str | Iterable[str]
subtitle_font: str | Iterable[str]
audio_framerate: int
audio_channels: int
wnd_pos: str
wnd_monitor: int
typst_bin: str
ffmpeg_bin: str
ffprobe_bin: str
output_dir: str
temp_dir: str
asset_dir: str | list[str]
client_search_port: int
janim.utils.config.is_power_plugged() bool
janim.utils.config.default_config = Config(fps=60, preview_fps=60, anti_alias_width=0.015, frame_height=8.0, frame_width=14.222222222222221, pixel_height=1080, pixel_width=1920, background_color=<Color black>, font='Consolas', subtitle_font='', audio_framerate=44100, audio_channels=2, wnd_pos='OR', wnd_monitor=0, typst_bin='typst', ffmpeg_bin='ffmpeg', ffprobe_bin='ffprobe', output_dir='videos', temp_dir='/tmp/janim', asset_dir='', client_search_port=40565)

默认配置

其中:

  • preview_fps 在接入电源时是 60,未接入时是 30

  • temp_dir 由操作系统决定

janim.utils.config.cli_config = Config(fps=None, preview_fps=None, anti_alias_width=None, frame_height=None, frame_width=None, pixel_height=None, pixel_width=None, background_color=None, font=None, subtitle_font=None, audio_framerate=None, audio_channels=None, wnd_pos=None, wnd_monitor=None, typst_bin=None, ffmpeg_bin=None, ffprobe_bin=None, output_dir=None, temp_dir=None, asset_dir=None, client_search_port=None)

命令行配置

会被命令行 --config 参数自动修改

class janim.utils.config.ConfigGetter(config_ctx: list[Config] | None = None)

基类:object

与配置数据相关联的数据的获取

请仍然使用 Config.get.xxx 来获取定义在该类中的内容

walk() Generator[Config, None, None]
property aspect_ratio: float
property frame_x_radius: float
property frame_y_radius: float
property pixel_to_frame_ratio: float
property default_pixel_to_frame_ratio: float
property left_side: Vect
property right_side: Vect
property bottom: Vect
property top: Vect
formated_output_dir(relative_path: str) str

:/path/to/file 转换为相对于 relative_path 的路径