20 "Which frame to use for videos. Note that different frames in videos can "
21 "have different resolutions");
25 b.add_output<
decl::Bool>(
"Has Alpha").description(
"Whether the image has an alpha channel");
28 .description(
"The number of animation frames. If a single image, then 1");
30 "Animation playback speed in frames per second. If a single image, then 0");
36 const int frame =
params.get_input<
int>(
"Frame");
38 params.set_default_remaining_outputs();
44 image_user.
frames = INT_MAX;
51 params.set_default_remaining_outputs();
56 params.set_output(
"Width", ibuf->
x);
57 params.set_output(
"Height", ibuf->
y);
68 float fps_sec_base = 0.0f;
70 fps =
float(fps_sec) / fps_sec_base;
74 params.set_output(
"Frame Count", frames);
75 params.set_output(
"FPS", fps);
ImBuf * BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **r_lock)
void BKE_image_release_ibuf(Image *ima, ImBuf *ibuf, void *lock)
void BKE_imageuser_default(ImageUser *iuser)
bool BKE_image_is_animated(Image *image)
#define BLI_SCOPED_DEFER(function_to_defer)
bool IMB_anim_get_fps(const ImBufAnim *anim, bool no_av_base, short *r_frs_sec, float *r_frs_sec_base)
int IMB_anim_get_duration(ImBufAnim *anim, IMB_Timecode_Type tc)
Contains defines and structs used throughout the imbuf module.
#define NOD_REGISTER_NODE(REGISTER_FUNC)
local_group_size(16, 16) .push_constant(Type b
draw_view in_light_buf[] float
void node_type_size_preset(bNodeType *ntype, eNodeSizePreset size)
void node_register_type(bNodeType *ntype)
static void node_declare(NodeDeclarationBuilder &b)
static void node_geo_exec(GeoNodeExecParams params)
static void node_register()
void geo_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
NodeGeometryExecFunction geometry_node_execute
NodeDeclareFunction declare