libspngPNG 圖片讀寫庫
libspng 是一個 C 語言的開發(fā)庫,用來讀寫 PNG 格式圖片,特點是安全而且易用。
libspng 目標(biāo)是提供一個快速的 PNG 庫,其 API 與 libpng 相同。
下圖是幾個 png 庫的性能比較:
功能比較:
| Feature | libspng | libpng | stb_image | lodepng |
|---|---|---|---|---|
| Decode to RGBA8/16 | ? | ? | ? | ? |
| Decode from stream | ? | ? | ? | X |
| Gamma correction | ? | ? | X | X |
| Fuzzed by OSS-Fuzz | ? | ? | X | ? |
| Progressive read | X* | ? | X | X |
| Doesn't require zlib | X | X | ? | ? |
| Encoding | X* | ? | ? | ? |
| Animated PNG | X* | ?** | X | X |
* 計劃階段的特性
** 第三方補丁
示例代碼:
/* Create a context */
spng_ctx *ctx = spng_ctx_new(0);
/* Set an input buffer */
spng_set_png_buffer(ctx, buf, buf_size);
/* Determine output image size */
spng_decoded_image_size(ctx, SPNG_FMT_RGBA8, &out_size);
/* Decode to 8-bit RGBA */
spng_decode_image(ctx, out, out_size, SPNG_FMT_RGBA8, 0);
/* Free context memory */
spng_ctx_free(ctx);
評論
圖片
表情
