SAIL 图像解码库的几个重要更新已经发布,提供了对早已不存在的 KSquirrel 图像查看器的编解码器的 C 重写,但具有高级抽象 API 和许多改进。 该库已可供使用,但仍在不断改进中。 尚不能保证二进制和 API 兼容性。 示范。
赛尔的特点
- 快速且易于使用的库;
- 用 C11 编写,绑定到 C++17;
- 对图像格式的支持是通过动态加载的编解码器实现的,可以独立于客户端进行删除和添加;
- 从文件、内存、自己的来源读取;
- 支持多页和动画图像;
- 对流行格式的支持仍然使用相应的库 libjpeg、libpng 等来完成。
- 跨平台:Linux、Windows、macOS;
- “探测”——无需解码像素即可获取图像信息;
- 人类实体名称(无 FIMULTIBITMAP);
- 读写 ICC 配置文件;
- 发送 RGBA 或 BGRA 像素;
- 如果编解码器支持,则返回原始像素(例如 CMYK);
自上次发布以来的更改列表:
- API 已得到显着改进和简化。 是: struct sail_context *context; SAIL_TRY(sail_init(&context)); 结构 sail_image *图像; 无符号字符*image_pixels; SAIL_TRY(sail_read(路径, 上下文, &image, (void **)&image_pixels)); ...免费(图像像素); sail_destroy_image(图像);
现在: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... sail_destroy_image(image);
- 新增BMP、GIF、TIFF格式;
- VCPKG 在除 UWP 之外的所有平台上均可用;
- 基准性能测试已发布;
- C++ 绑定已移至 C++17;
- 内存分配函数被收集在一个地方,以便可以轻松地用您自己的函数替换它们,但目前这只能通过重新编译来完成;
- 用户现在可以使用 CMake find_package() 连接 SAIL;
- 添加了静态编译的能力(SAIL_STATIC=ON);
- 添加了将所有编解码器编译到一个公共库中的功能(SAIL_COMBINE_CODECS=ON);
- 添加基于 µnit 的测试的工作已经开始;
推荐安装方式
- Linux - vcpkg、Debian 规则也可用
- Windows-vcpkg
- macOS - 酿造
来源: opennet.ru