问题描述
在我的应用中,有很多双色和三色图片。两色图片是黑白的,我把图片转换成单色模式,从8位到1位。三色图片是黑、白、红。有没有类似的mechasim把图片转成2bit?
解决方法
看来您正在寻找一种 indexed color 存储模型,具有 2 位索引值,因此每个字节存储 4 个像素。
来自链接的维基百科文章:
2 位索引彩色图像。每个像素的颜色由一个数字表示;每个数字(索引)对应于颜色表(调色板)中的一种颜色。
,另一种处理方法是将 3 色黑白红色图像编码为两个 2 色图像:
- 黑色/白色图像,其中 1 代表黑色
- 红色/非红色图像,其中 1 代表红色
例如颜色可以映射如下:
- 黑色 -> (1,0)
- 白色 -> (0,0)
- 红色 -> (?,1) 在哪里?可以是 0 或 1。
然后可以分别压缩/解压缩两个 2 色图像。 3 色 2 色转换可以通过简单的像素过滤和组合操作进行。如果需要在 GPU 上完成转换,后者可能会很有用。
(这种表示的信息密度与 Andreas 的索引颜色存储模型相同。2 位代表原始图像中的每个像素。)