Project Icon

hicolor

开源高色彩图像转换与处理程序

HiColor是一款开源的图像转换程序,专注于15位和16位RGB高色彩处理。该工具支持自定义文件格式和PNG转换,集成了Bayer和'a dither'抖动算法。相比256色pngquant,HiColor提供了更低损耗的图像压缩方案。程序适配多种操作系统,并提供C语言库便于开发者集成。作为轻量级工具,HiColor为高色彩图像处理提供了简单而有效的解决方案。

HiColor

一栋建筑物,背景是经过抖动处理的天空渐变。天空中有一架喷气式飞机正在起飞。

(上图使用15位色彩)

HiColor 是一个用于将图像转换为15位和16位RGB色彩的程序和库,这是早期显示模式中被称为"高彩色"的色彩深度。我开发它是因为我想创建具有高彩色特征外观的图像。

目录

描述

HiColor 将图像压缩为两字节的15位或16位色彩。在15位模式下,图像的红、绿、蓝各有5位,最后一位保留。在16位模式下,人眼通常最敏感的绿色获得6位。

HiColor 实现了自己的简单文件格式,并在此格式和PNG之间进行转换。它还可以将标准PNG转换为仅包含高彩色值的标准PNG。(这模拟了通过HiColor的往返过程,无需创建临时文件。)HiColor 文件的扩展名为 .hic,或者15位用 .hi5,16位用 .hi6。

默认情况下,HiColor 应用拜耳有序抖动算法来减少量化误差(原始像素和高彩色像素之间的差异)。历史上的软硬件在高彩色模式下使用这种方法进行抖动。HiColor 也可以使用"a dither"算法替代。可以通过命令行标志选择或禁用抖动。

量化后的图像比原图更易压缩,因此HiColor可以作为256色pngquant的低损失替代方案。将PNG文件量化为PNG可以保留透明度(但不会量化alpha通道)。与HiColor格式的相互转换不保留透明度。

该程序用C语言编写,依赖极少,默认构建为静态二进制文件。已知可在Linux(aarch64、i386、riscv64、x86_64)、FreeBSD、NetBSD、OpenBSD以及Windows 98第二版、2000 SP4、XP、7和10上运行。

已知问题和限制

安全性

HiColor的命令行版本(非库版本)使用cute_png读取PNG文件。cute_png适用于可信输入。这意味着恶意构造的PNG文件可能会攻击HiColor CLI。为安全起见,只使用自己创建的PNG文件。对来自互联网的PNG文件使用可信程序重新压缩。

PNG文件大小

HiColor生成的PNG文件未经优化。通过OptiPNG或Oxipng处理可显著减小文件大小。

代际损失

使用拜耳抖动或无抖动时,初次量化后不会有代际损失。重复应用"a dither"会导致代际损失。测试表明,15位和16位模式下分别在32或64代后损失趋于零。

HiColor 0.1.0-0.2.1版本在使用拜耳抖动时由于实现错误存在代际损失。此错误在0.3.0版本中已修复。

使用方法

HiColor采用Git风格的命令行界面。 "encode"和"decode"操作可以在PNG和HiColor自有图像格式之间转换图像。 "quantize"将图像通过转换器来回处理,并输出标准的32位PNG。 使用它可以创建其他程序可读的高色彩图像。 "info"显示HiColor文件的信息:版本(15位为"5"或16位为"6")、宽度和高度。

HiColor 0.5.0
创建15/16位色RGB图像。

用法:
  hicolor (encode|quantize) [-5|-6] [-a|-b|-n] [--] <源文件> [<目标文件>]
  hicolor decode <源文件> [<目标文件>]
  hicolor info <文件>
  hicolor (version|help|-h|--help)

命令:
  encode           将PNG转换为HiColor
  decode           将HiColor转换为PNG
  quantize         将PNG量化为PNG
  info             打印HiColor图像版本和分辨率
  version          打印程序版本
  help             打印此帮助信息

选项:
  -5, --15-bit     15位色
  -6, --16-bit     16位色
  -a, --a-dither   使用"a dither"对图像进行抖动
  -b, --bayer      使用Bayer算法对图像进行抖动(默认)
  -n, --no-dither  不对图像进行抖动

构建

Debian/Ubuntu

sudo apt install -y build-essential graphicsmagick tclsh
gmake test

交叉编译Windows版本

以下命令用于构建32位Windows可执行文件。

sudo apt install -y build-essential gcc-mingw-w64-i686
gmake hicolor.exe
# 仅在测试时需要Wine、Tcl和GraphicsMagick。
sudo apt install -y graphicsmagick tclsh wine
gmake test-wine

替代方案

我编写HiColor是因为似乎没有支持高色彩的工具。 但我错了。 实际上, FFmpegGIMPImageMagick 都可以将图像降低到15位和16位色。 HiColor的独特之处在于它是一个小型专用工具和可嵌入的C库,并且有自己的文件格式。

许可证

MIT。

cute_png的版权归Randy Gaul所有,(c) 2019, 2021-2023,基于zlib许可证授权。

来自Unsplash的照片

“飞行中的飞机”bordeaux-15bit.png)由olaf wisser拍摄。

“树旁的房屋”tests/photo.png)由Orlova Maria拍摄。

许可证

Unsplash授予您不可撤销的、非独占的、全球性的版权许可,允许您免费下载、复制、修改、分发、表演和使用Unsplash的照片,包括商业用途,无需征得摄影师或Unsplash的许可或署名。此许可不包括将Unsplash的照片编译以复制类似或竞争服务的权利。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号