FLIF:Free Lossless Image Format
FLIF 是基于 MANIAC 压缩的无损图像格式。MANIAC(Meta-Adaptive Near-zero Integer Arithmetic Coding)是 CABAC(context-adaptive binary arithmetic coding)的一种变体,其中上下文是决策树的节点,这些节点在编码时动态学习。
在压缩比方面,FLIF 优于 PNG、FFV1、无损 WebP、无损 BPG 和无损 JPEG2000。
此外,FLIF 还支持一种渐进式交错形式(本质上是对 PNG 的 Adam7 的一种泛化/改进),这意味着压缩文件的任何前缀(例如部分下载)都可以用作整个图像的合理的有损编码。
有关 FLIF 的更多信息,请访问 http://flif.info
许可证
FLIF 是自由的/自由软件:您可以分发它并/或修改它,前提是您会回馈。
FLIF 的参考实现根据 GNU Lesser General Public License version 3 或更高版本(LGPLv3+)的条款发布。
解码库 libflif_dec
根据较弱的、非自由软件许可证发布:Apache 2.0 许可证。
示例应用程序 viewflif
展示了如何使用解码库。在 viewflif.c
中的示例代码是公共领域的(Creative Commons CC0 1.0 Universe)。
构建说明
GNU/Linux
安装依赖
在 Debian 上
- 对于编码器/解码器:
sudo apt-get install libpng-dev
- 对于查看器:
sudo apt-get install libsdl2-dev
在 Fedora 上
- 对于编码器/解码器:
sudo dnf install libpng-devel
- 对于查看器:
sudo dnf install SDL-devel
编译
- 转到 FLIF/src 目录并运行
make
以编译所有内容,或者- 运行
make flif
以仅构建flif
命令行工具 - 运行
make libflif.so
以构建 LGPL 的共享库 - 运行
make libflif_dec.so
以构建 Apache 许可的仅解码共享库 - 运行
make viewflif
以构建示例查看器(它依赖于解码库)
- 运行
安装
- 如果您想要全局安装,请执行
sudo make install
Windows
- 安装 Visual Studio(VS Community 2015 对开源项目是免费的)
- 打开
build\MSVC
文件夹,双击dl_make_vs.bat
文件。这将下载所需的库,并运行nmake
构建flif.exe
。然后,在命令行中运行nmake libflif.dll
以构建共享库nmake viewflif.exe
以构建示例查看器
OS X
- 安装 homebrew
- 安装依赖:
brew install pkg-config libpng sdl2
- 在 FLIF/src 目录中运行
make
预构建二进制文件
这些将在发布页面上提供
相关项目
- Poly FLIF - 允许你在浏览器中使用 FLIF 文件的 JavaScript Polyfill。(演示)
- UGUI: FLIF - 一个图形用户界面,允许你转换和查看 FLIF 文件。
- Ivy, 标签图像查看器 – 一个图像查看器,支持通过 riff 使用 FLIF。
- flifcrush - 一个暴力破解的 FLIF 优化器。
- libflif.js – JavaScript FLIF 编码和解码器。(演示)
- flif-rs – 正在进行中的 FLIF 在 Rust 中的实现。
- FLIF Windows 编解码器 – 一个插件,允许你在 Windows 应用程序中使用 Windows 图像组件 API 解码和编码 FLIF 文件。这允许在 Windows PhotoViewer 和 Windows 资源管理器中查看文件,例如其他常见图像格式。
- FLIF Windows 插件 – 使能够使用 Windows 图像组件 API 解码 FLIF 图像的插件。这样,FLIF 图像可以通过其他常见图像格式一样在 Windows 资源管理器中查看。
- qt-flif-plugin – 允许 Qt4 和 Qt5 应用程序加载 FLIF 图像格式。
- FLIFSharp – C# FLIF 库绑定。
- go-flif – Go FLIF 库绑定。