modules/py_image: Move ksize to be pos_arg.

This commit is contained in:
Kwabena W. Agyeman 2024-05-12 21:54:46 -07:00
parent b4f1461e23
commit f928965896

View File

@ -2133,17 +2133,17 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_b_xnor_obj, 2, py_image_b_xnor);
static mp_obj_t py_image_binary_moprh_op(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args, static mp_obj_t py_image_binary_moprh_op(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args,
binary_morph_op_t op) { binary_morph_op_t op) {
enum { ARG_ksize, ARG_threshold, ARG_mask }; enum { ARG_threshold, ARG_mask };
static const mp_arg_t allowed_args[] = { static const mp_arg_t allowed_args[] = {
{ MP_QSTR_ksize, MP_ARG_INT | MP_ARG_REQUIRED, },
{ MP_QSTR_threshold, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0 } }, { MP_QSTR_threshold, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0 } },
{ MP_QSTR_mask, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_rom_obj = MP_ROM_NONE} }, { MP_QSTR_mask, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_rom_obj = MP_ROM_NONE} },
}; };
// Parse args. // Parse args.
image_t *image = py_helper_arg_to_image(pos_args[0], ARG_IMAGE_MUTABLE); image_t *image = py_helper_arg_to_image(pos_args[0], ARG_IMAGE_MUTABLE);
int ksize = py_helper_arg_to_ksize(pos_args[1]);
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args - 2, pos_args + 2, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
fb_alloc_mark(); fb_alloc_mark();
image_t *mask = NULL; image_t *mask = NULL;
@ -2151,7 +2151,7 @@ static mp_obj_t py_image_binary_moprh_op(uint n_args, const mp_obj_t *pos_args,
mask = py_helper_arg_to_image(args[ARG_mask].u_obj, ARG_IMAGE_MUTABLE | ARG_IMAGE_ALLOC); mask = py_helper_arg_to_image(args[ARG_mask].u_obj, ARG_IMAGE_MUTABLE | ARG_IMAGE_ALLOC);
} }
op(image, args[ARG_ksize].u_int, args[ARG_threshold].u_int, mask); op(image, ksize, args[ARG_threshold].u_int, mask);
fb_alloc_free_till_mark(); fb_alloc_free_till_mark();
return pos_args[0]; return pos_args[0];
} }
@ -2159,22 +2159,22 @@ static mp_obj_t py_image_binary_moprh_op(uint n_args, const mp_obj_t *pos_args,
STATIC mp_obj_t py_image_erode(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t py_image_erode(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_erode); return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_erode);
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_erode_obj, 1, py_image_erode); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_erode_obj, 2, py_image_erode);
STATIC mp_obj_t py_image_dilate(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t py_image_dilate(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_dilate); return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_dilate);
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_dilate_obj, 1, py_image_dilate); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_dilate_obj, 2, py_image_dilate);
STATIC mp_obj_t py_image_open(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t py_image_open(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_open); return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_open);
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_open_obj, 1, py_image_open); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_open_obj, 2, py_image_open);
STATIC mp_obj_t py_image_close(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t py_image_close(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_close); return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_close);
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_close_obj, 1, py_image_close); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_close_obj, 2, py_image_close);
#endif // IMLIB_ENABLE_BINARY_OPS #endif // IMLIB_ENABLE_BINARY_OPS
#ifdef IMLIB_ENABLE_MATH_OPS #ifdef IMLIB_ENABLE_MATH_OPS
@ -2383,12 +2383,12 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_blend_obj, 2, py_image_blend);
STATIC mp_obj_t py_image_top_hat(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t py_image_top_hat(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_top_hat); return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_top_hat);
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_top_hat_obj, 1, py_image_top_hat); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_top_hat_obj, 2, py_image_top_hat);
STATIC mp_obj_t py_image_black_hat(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t py_image_black_hat(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_black_hat); return py_image_binary_moprh_op(n_args, pos_args, kw_args, imlib_black_hat);
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_black_hat_obj, 1, py_image_black_hat); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_black_hat_obj, 2, py_image_black_hat);
#endif // defined(IMLIB_ENABLE_MATH_OPS) && defined(IMLIB_ENABLE_BINARY_OPS) #endif // defined(IMLIB_ENABLE_MATH_OPS) && defined(IMLIB_ENABLE_BINARY_OPS)
//////////////////// ////////////////////