Skip to content
Ever-Never edited this page Jul 9, 2018 · 1 revision

Image API 使用的前提是你需要从上一步的resource API读取一个流,然后从流里面解码一张图片,流的释放,和图片资源的释放,需要自己把握,现阶段支持png svg 解码,但是建议使用png图片.会根据流文件的头三字节选择合适的解码逻辑

常用API列表

/*
 * Function    : libaroma_image_ex
 * Return Value: LIBAROMA_CANVASP
 * Descriptions: read image by file signature - extended
 */
LIBAROMA_CANVASP libaroma_image_ex(
    LIBAROMA_STREAMP stream, 
    byte freeStream, 
    byte hicolor);

/* libaroma_image_ex aliases */
#define libaroma_image(stream, freeStream) \
  libaroma_image_ex(stream, freeStream, 0)
#define libaroma_image_uri_ex(uri,hicolor) \
  libaroma_image_ex(libaroma_stream(uri), 1, hicolor)
#define libaroma_image_uri(uri) \
  libaroma_image_ex(libaroma_stream(uri), 1, 0)
#define libaroma_image_zip(path, zpath, hicolor) \
  libaroma_image_ex(libaroma_stream_zip(path,zpath),1,hicolor)
#define libaroma_image_mzip(zip, zpath, hicolor) \
  libaroma_image_ex(libaroma_stream_mzip(zip,zpath),1,hicolor)
#define libaroma_image_file(filepath, hicolor) \
  libaroma_image_ex(libaroma_stream_file(filepath),1,hicolor)

其中最根本的API

/*
 * Function    : libaroma_image_ex
 * Return Value: LIBAROMA_CANVASP
 * Descriptions: read image by file signature - extended
 */
LIBAROMA_CANVASP libaroma_image_ex(
    LIBAROMA_STREAMP stream, 
    byte freeStream, 
    byte hicolor);

参数说明

参数 说明
stream 流指针
freeStream 是否释放流(一次使用传1 ,多次合适时机释放)
hicolor RGB888 时候用,现在传0

返回值

类型 说明
LIBAROMA_CANVASP 可能为NULL,用过之后记得释放.

例子

LIBAROMA_STREAMP stream = libaroma_stream_mem((bytep)res_get(RES_INDEX_RUN_BIKE),res_get_length(RES_INDEX_RUN_BIKE)) ;
list_icon = libaroma_image_ex(stream,1,0) ;
Clone this wiki locally