/* rdimg.h — stb_image 封装:解码图片 → 降采样 → RGB565 缓冲。CBZ 页面 / 封面用。 * 内存纪律:解码后立即降采样到目标尺寸(≤屏宽),原位图用完即释;采样用行拷贝(线性)。 */ #ifndef RDIMG_H #define RDIMG_H #include #include #ifdef __cplusplus extern "C" { #endif /* 解码 data[0..size) 为图片,等比缩放到 max_w×max_h 内(不放大原图,只缩小), * 输出 RGB565 缓冲 *out565(malloc,调用方 free);*ow 与 *oh 为缩放后尺寸。 * 目标缩放:长边 ≥ max 才缩,否则原尺寸。0=成功;负值=解码失败。 */ int rdimg_decode_scale(const uint8_t *data, size_t size, int max_w, int max_h, uint16_t **out565, int *ow, int *oh); /* 解码只取尺寸(不缩放,只填充 w/h for 布局预估)。0=成功。 */ int rdimg_probe_wh(const uint8_t *data, size_t size, int *w, int *h); #ifdef __cplusplus } #endif #endif /* RDIMG_H */