Java 如何高效压缩三色图片

Java 如何高效压缩三色图片,java,image-compression,Java,Image Compression,在我的应用程序中,有许多双色和三色图片。两种颜色的图片是黑白的,我把图片转换成单色模式,从8位到1位。三种颜色的图片是黑色、白色和红色。是否有类似的机制将图片转换为2位?似乎您正在寻找一种具有2位索引值的存储模型,因此每个字节存储4个像素 从链接的维基百科文章: 2位索引彩色图像。每个像素的颜色由一个数字表示;每个数字(索引)对应于颜色表(调色板)中的一种颜色 似乎您正在寻找一种具有2位索引值的存储模型,因此每个字节存储4个像素 从链接的维基百科文章: 2位索引彩色图像。每个像素的颜色由一个

在我的应用程序中,有许多双色和三色图片。两种颜色的图片是黑白的,我把图片转换成单色模式,从8位到1位。三种颜色的图片是黑色、白色和红色。是否有类似的机制将图片转换为2位?

似乎您正在寻找一种具有2位索引值的存储模型,因此每个字节存储4个像素

从链接的维基百科文章:

2位索引彩色图像。每个像素的颜色由一个数字表示;每个数字(索引)对应于颜色表(调色板)中的一种颜色


似乎您正在寻找一种具有2位索引值的存储模型,因此每个字节存储4个像素

从链接的维基百科文章:

2位索引彩色图像。每个像素的颜色由一个数字表示;每个数字(索引)对应于颜色表(调色板)中的一种颜色


另一种处理方法是将3色黑白红色图像编码为两个2色图像:

  • 黑色/白色图像,其中1表示黑色
  • 红色/非红色图像,其中1表示红色
例如,可以按如下方式映射颜色:

  • 黑色->(1,0)
  • 白色->(0,0)
  • 红色->(?,1)在哪里?可以是0或1
然后可以分别对这两个2色图像进行压缩/解压缩。3色2色转换可以通过简单的像素滤波和组合操作来执行。如果转换需要在GPU上完成,则后者可能是有益的


(此表示的信息密度与Andreas的索引颜色存储模型相同。2位表示原始图像中的每个像素。)

另一种处理方法是将3色黑白红色图像编码为两个2色图像:

  • 黑色/白色图像,其中1表示黑色
  • 红色/非红色图像,其中1表示红色
例如,可以按如下方式映射颜色:

  • 黑色->(1,0)
  • 白色->(0,0)
  • 红色->(?,1)在哪里?可以是0或1
然后可以分别对这两个2色图像进行压缩/解压缩。3色2色转换可以通过简单的像素滤波和组合操作来执行。如果转换需要在GPU上完成,则后者可能是有益的


(此表示的信息密度与Andreas的索引颜色存储模型相同。2位表示原始图像中的每个像素。)

非常好的视觉效果Andreas。你经常给人留下深刻印象。非常好的视觉效果。你经常给人留下深刻印象。