libspng

PNG 图片读写库
授权协议 BSD
开发语言 C/C++
所属分类 程序开发、 图形/图像处理
软件类型 开源软件
地区 不详
投 递 者 郝君博
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

libspng 是一个 C 语言的开发库,用来读写 PNG 格式图片,特点是安全而且易用。

libspng 目标是提供一个快速的 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);

 

 相关资料
  • 本文向大家介绍Python各类图像库的图片读写方式总结(推荐),包括了Python各类图像库的图片读写方式总结(推荐)的使用技巧和注意事项,需要的朋友参考一下 最近在研究深度学习视觉相关的东西,经常需要写python代码搭建深度学习模型。比如写CNN模型相关代码时,我们需要借助python图像库来读取图像并进行一系列的图像处理工作。我最常用的图像库当然是opencv,很强大很好用,但是opencv

  • 在UserProfileModule中再添加一个读取用户头像的方法 @Ok("raw:jpg") @At("/avatar") @GET public Object readAvatar(@Attr(scope=Scope.SESSION, value="me")int userId, HttpServletRequest req) throws SQLExcept

  • 切片提供了 Go 中处理 I/O 缓冲的标准方式,下面 cat 函数的第二版中,在一个切片缓冲内使用无限 for 循环(直到文件尾部 EOF)读取文件,并写入到标准输出(os.Stdout)。 func cat(f *os.File) { const NBUF = 512 var buf [NBUF]byte for { switch nr, err :=

  • 问题内容: 我尝试了以下代码来完成读取和写入tiff图像的任务: 但是,当我运行代码时,出现以下错误消息: 知道如何解决这个问题吗? 问题答案: 读取TIFF并输出BMP的最简单方法是使用ImageIO类: 要使此功能正常工作,您唯一需要做的另一件事是确保已将JAI ImageIO JAR添加到类路径中,因为如果没有此库中的插件,JRE不会处理BMP和TIFF。 如果由于某种原因不能使用JAI I

  • 本文向大家介绍Python实现识别手写数字 Python图片读入与处理,包括了Python实现识别手写数字 Python图片读入与处理的使用技巧和注意事项,需要的朋友参考一下 写在前面 在上一篇文章Python徒手实现手写数字识别—大纲中,我们已经讲过了我们想要写的全部思路,所以我们不再说全部的思路。 我这一次将图片的读入与处理的代码写了一下,和大纲写的过程一样,这一段代码分为以下几个部分: 读入

  • 本文向大家介绍Node.js读写文件之批量替换图片的实现方法,包括了Node.js读写文件之批量替换图片的实现方法的使用技巧和注意事项,需要的朋友参考一下 问题:文件夹A中有大量图片文件,需要用另外一个图片替换掉A中图片,但是命名保持不变。 手工的做法如下: 1)浏览器打开图片->2)另存为->3)目标文件夹->4)找到一个图片->5)替换->6)确定 然后,重复步骤2)和之后的步骤。不小心会漏掉

  • 问题内容: 我正在从这里使用出色的毒蛇库:https : //github.com/spf13/viper 我正在尝试读取hcl中的配置文件(尽管它也可能是JSOn或YAML文件),如下所示: 到目前为止,我的代码如下: 我遇到的最大问题是使用group选项。这可以是多个不同的组。 当我在使用中阅读它时,它似乎不起作用,所以我使用了标准函数。转储时,结果结构如下所示: 我使用反射时似乎是切片类型。

  • 我尝试在登录后阅读谷歌用户的个人资料图片,但我遇到输入流打开错误。我不想用格莱德或毕加索图书馆。我的代码相当标准: 我该如何解决这个问题呢?