11// C headers
22#include "py/runtime.h"
33
4+ // Function declarations
45extern mp_obj_t cv2_imgcodecs_imread (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args );
56extern mp_obj_t cv2_imgcodecs_imwrite (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args );
7+
8+ // Python references to the functions
9+ static MP_DEFINE_CONST_FUN_OBJ_KW (cv2_imgcodecs_imread_obj , 1 , cv2_imgcodecs_imread ) ;
10+ static MP_DEFINE_CONST_FUN_OBJ_KW (cv2_imgcodecs_imwrite_obj , 2 , cv2_imgcodecs_imwrite ) ;
11+
12+ // Global definitions for functions and constants
13+ #define OPENCV_IMGCODECS_GLOBALS \
14+ /* Functions */ \
15+ { MP_ROM_QSTR(MP_QSTR_imread), MP_ROM_PTR(&cv2_imgcodecs_imread_obj) }, \
16+ { MP_ROM_QSTR(MP_QSTR_imwrite), MP_ROM_PTR(&cv2_imgcodecs_imwrite_obj) }, \
17+ \
18+ /* Image read flags, from opencv2/imgcodecs.hpp */ \
19+ { MP_ROM_QSTR (MP_QSTR_IMREAD_UNCHANGED ), MP_ROM_INT (-1 ) }, \
20+ { MP_ROM_QSTR (MP_QSTR_IMREAD_GRAYSCALE ), MP_ROM_INT (0 ) }, \
21+ { MP_ROM_QSTR (MP_QSTR_IMREAD_COLOR_BGR ), MP_ROM_INT (1 ) }, \
22+ { MP_ROM_QSTR (MP_QSTR_IMREAD_COLOR ), MP_ROM_INT (1 ) }, \
23+ { MP_ROM_QSTR (MP_QSTR_IMREAD_ANYDEPTH ), MP_ROM_INT (2 ) }, \
24+ { MP_ROM_QSTR (MP_QSTR_IMREAD_ANYCOLOR ), MP_ROM_INT (4 ) }, \
25+ { MP_ROM_QSTR (MP_QSTR_IMREAD_LOAD_GDAL ), MP_ROM_INT (8 ) }, \
26+ { MP_ROM_QSTR (MP_QSTR_IMREAD_REDUCED_GRAYSCALE_2 ), MP_ROM_INT (16 ) }, \
27+ { MP_ROM_QSTR (MP_QSTR_IMREAD_REDUCED_COLOR_2 ), MP_ROM_INT (17 ) }, \
28+ { MP_ROM_QSTR (MP_QSTR_IMREAD_REDUCED_GRAYSCALE_4 ), MP_ROM_INT (32 ) }, \
29+ { MP_ROM_QSTR (MP_QSTR_IMREAD_REDUCED_COLOR_4 ), MP_ROM_INT (33 ) }, \
30+ { MP_ROM_QSTR (MP_QSTR_IMREAD_REDUCED_GRAYSCALE_8 ), MP_ROM_INT (64 ) }, \
31+ { MP_ROM_QSTR (MP_QSTR_IMREAD_REDUCED_COLOR_8 ), MP_ROM_INT (65 ) }, \
32+ { MP_ROM_QSTR (MP_QSTR_IMREAD_IGNORE_ORIENTATION ), MP_ROM_INT (128 ) }, \
33+ { MP_ROM_QSTR (MP_QSTR_IMREAD_COLOR_RGB ), MP_ROM_INT (256 ) }, \
34+ \
35+ /* Image write flags, from opencv2/imgcodecs.hpp */ \
36+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG_QUALITY ), MP_ROM_INT (1 ) }, \
37+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG_PROGRESSIVE ), MP_ROM_INT (2 ) }, \
38+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG_OPTIMIZE ), MP_ROM_INT (3 ) }, \
39+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG_RST_INTERVAL ), MP_ROM_INT (4 ) }, \
40+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG_LUMA_QUALITY ), MP_ROM_INT (5 ) }, \
41+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG_CHROMA_QUALITY ), MP_ROM_INT (6 ) }, \
42+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG_SAMPLING_FACTOR ), MP_ROM_INT (7 ) }, \
43+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_PNG_COMPRESSION ), MP_ROM_INT (16 ) }, \
44+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_PNG_STRATEGY ), MP_ROM_INT (17 ) }, \
45+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_PNG_BILEVEL ), MP_ROM_INT (18 ) }, \
46+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_PXM_BINARY ), MP_ROM_INT (32 ) }, \
47+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_EXR_TYPE ), MP_ROM_INT ((3 << 4 ) + 0 ) }, \
48+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_EXR_COMPRESSION ), MP_ROM_INT ((3 << 4 ) + 1 ) }, \
49+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_EXR_DWA_COMPRESSION_LEVEL ), MP_ROM_INT ((3 << 4 ) + 2 ) }, \
50+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_WEBP_QUALITY ), MP_ROM_INT (64 ) }, \
51+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_HDR_COMPRESSION ), MP_ROM_INT ((5 << 4 ) + 0 ) }, \
52+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_PAM_TUPLETYPE ), MP_ROM_INT (128 ) }, \
53+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_TIFF_RESUNIT ), MP_ROM_INT (256 ) }, \
54+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_TIFF_XDPI ), MP_ROM_INT (257 ) }, \
55+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_TIFF_YDPI ), MP_ROM_INT (258 ) }, \
56+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_TIFF_COMPRESSION ), MP_ROM_INT (259 ) }, \
57+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_TIFF_ROWSPERSTRIP ), MP_ROM_INT (278 ) }, \
58+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_TIFF_PREDICTOR ), MP_ROM_INT (317 ) }, \
59+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEG2000_COMPRESSION_X1000 ), MP_ROM_INT (272 ) }, \
60+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_AVIF_QUALITY ), MP_ROM_INT (512 ) }, \
61+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_AVIF_DEPTH ), MP_ROM_INT (513 ) }, \
62+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_AVIF_SPEED ), MP_ROM_INT (514 ) }, \
63+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEGXL_QUALITY ), MP_ROM_INT (640 ) }, \
64+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEGXL_EFFORT ), MP_ROM_INT (641 ) }, \
65+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEGXL_DISTANCE ), MP_ROM_INT (642 ) }, \
66+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_JPEGXL_DECODING_SPEED ), MP_ROM_INT (643 ) }, \
67+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_GIF_LOOP ), MP_ROM_INT (1024 ) }, \
68+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_GIF_SPEED ), MP_ROM_INT (1025 ) }, \
69+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_GIF_QUALITY ), MP_ROM_INT (1026 ) }, \
70+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_GIF_DITHER ), MP_ROM_INT (1027 ) }, \
71+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_GIF_TRANSPARENCY ), MP_ROM_INT (1028 ) }, \
72+ { MP_ROM_QSTR (MP_QSTR_IMWRITE_GIF_COLORTABLE ), MP_ROM_INT (1029 ) }
73+
0 commit comments