mapcache_image* _mapcache_imageio_png_decode(mapcache_context *ctx, mapcache_buffer *buffer) { mapcache_image *img = mapcache_image_create(ctx); _mapcache_imageio_png_decode_to_image(ctx,buffer,img); if(GC_HAS_ERROR(ctx)) return NULL; return img; }
void mapcache_imageio_decode_to_image(mapcache_context *ctx, mapcache_buffer *buffer, mapcache_image *image) { mapcache_image_format_type type = mapcache_imageio_header_sniff(ctx,buffer); if(type == GC_PNG) { _mapcache_imageio_png_decode_to_image(ctx,buffer,image); } else if(type == GC_JPEG) { _mapcache_imageio_jpeg_decode_to_image(ctx,buffer,image); } else { ctx->set_error(ctx, 500, "mapcache_imageio_decode: unrecognized image format"); } return; }