增加c#中图像的位深度

时间:2015-08-27 16:51:58

标签: c# image-processing

是否有任何可能的方法来增加图像的位深度并将该图像的额外信息保存到增加的位而不影响原始像素值?

  • ie:原始图像= 24位RGB
  • 需要:32位(额外8位到 存储一些其他信息)

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Alpha频道

  • 转换为RGBA
  • 但不同的文件格式处理方式不同
  • 因此可以在预览时改变视觉外观
  • 尝试: TGA,PNG,BMP
  • 格式如: JPG,PCX,.. 不支持Alpha通道
  • 一些格式/观众也可以选择改变外观的背景颜色
  • 您可以部分使用较低的alpha位数来避免过多的噪音预览
  • 例如00XXh,80XXh or FFXXh取决于混合功能
  • 但如果您确实需要每像素8位,那么请使用在您使用过的查看器中忽略Alpha通道的格式

您可以在图片

之后添加新信息
  • GIF 等某些格式使用文件结束标记
  • 所以你可以在那个标记之后添加你的数据......
  • 但您需要处理图片加载/保存自己
  • 某些格式在标题信息中使用偏移表或图像数据的起始地址
  • 您可以将数据放入图像数据之间,甚至可以放在图像数据之间
  • 并相应地抵消起始地址
  • 也因为你需要自己处理加载/保存
  • 这种方式的展位不会在预览中显示其他信息
  • 但是观看者和防病毒应用可以检测到错误的大小
  • 写得不好的装载机甚至会崩溃......

您可以将信息放入图像的辅助数据/通道

  • 格式如 GIF 具有用于字幕,动画命令,同步等的其他数据块
  • 您可以将数据编码到其中
  • 这种方式很干净,但是没有多少文件格式能够用于此
  • 此类文件的高级工具可以查看添加的信息,但您需要查找...