FLIF 的开发已停止,因为 FLIF 已被 FUIF 取代,随后又被 JPEG XL 取代,后者基于 Pik 和 FUIF 的组合。 JPEG XL 的免版税且开源的参考实现可在 GitHub 上获取。更多信息,请参阅 JPEG XL 社区页面 或访问 JPEG XL Discord 服务器。
FLIF:自由无损图像格式
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 的更多信息,请访问 https://flif.info
许可证
FLIF 是著佐自由/自由软件:您可以重新分发和/或修改它,前提是您回馈分享。
FLIF 的参考实现根据 GNU 宽通用公共许可证第 3 版或更高版本(LGPLv3+)的条款发布。
解码库 libflif_dec 根据较弱的、非著佐自由软件许可证发布:Apache 2.0 许可证。
示例应用程序 viewflif 演示了如何使用解码库。
viewflif.c 中的示例代码属于公共领域(Creative Commons CC0 1.0 Universal)。
构建说明
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
在 Ubuntu 上:
- 用于编码器/解码器:
sudo apt-get install libpng-dev make pkg-config - 用于查看器:
sudo apt-get install libsdl2-dev
编译
- 导航至 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
预构建二进制文件
这些文件将在 Release 页面提供
或者,你可以获取 Snap 软件包:
相关项目
-
Poly FLIF - 一个 JavaScript polyfill,允许你在浏览器中使用 FLIF 文件。(Demo)
-
UGUI: FLIF - 一个允许你转换和查看 FLIF 文件的 GUI。
-
Ivy, the Taggable Image Viewer – 一个通过 riff 支持 FLIF 的图像查看器
-
flifcrush - 一个暴力 FLIF 优化器。
-
libflif.js – 一个 JavaScript FLIF 编码器和解码器。(Demo)
-
flif.rs – 一个正在进行的 FLIF Rust 实现。
-
FLIF Windows Codec – 一个插件,允许你使用 Windows Imaging Component (WIC) API 在 Windows 应用程序中解码和编码 FLIF 文件。这使得例如可以在 Windows PhotoViewer 和 Windows Explorer 中查看这些文件。
-
FLIF Windows Plugin – 此插件启用在使用 Windows Imaging Component API 的应用程序中解码 FLIF 图像。这样,FLIF 图像可以像其他常见图像格式一样在 Windows Explorer 中查看。
-
qt-flif-plugin – 使 Qt4 和 Qt5 应用程序能够加载 FLIF 图像格式的图像。
-
go-flif – Go FLIF 库绑定。
-
Phew - 带有 QuickLook 插件的 macOS 图像查看器
-
SDWebImageFLIFCoder - 流行图像加载框架 SDWebImage 的编码器插件,支持 iOS/macOS/tvOS/watchOS 所有 Apple 平台。
-
libflif-Xcode - 用于在 iOS/macOS/tvOS/watchOS 所有 Apple 平台上构建 libflif 的 Xcode 项目。
-
flif-wasm - Node.js 移植的 FLIF 命令行工具。
-
node-flif - 一个 Node.JS 封装,允许您使用 JavaScript 与 CLI 进行交互。
-
SimplEx FLIF - 一个用于原生可执行文件的简单且功能丰富的 GUI 中间件。
-
WinFLIF - 一个用于在 FLIF/PNG 静态图像之间转换的小型 Windows 桌面应用程序。
-
imageio-FLIF - 一个用于读取和写入 FLIF 图像及动画的 Imageio (Python) 插件