在c#中增加图像的位深度
本文关键字:深度 图像 增加 | 更新日期: 2023-09-27 18:10:03
是否有任何可能的方法来增加图像的位深,并将该图像的额外信息保存到增加的位中,而不影响原始像素值?
- 即:原始图像= 24位RGB
- 所需:32位(额外8位到存储一些其他信息)
你可以尝试使用alpha通道
- 转换为RGBA
- 但不同的文件格式处理方式不同
- 所以它可以在预览 时改变视觉外观
- 尝试: TGA, PNG, BMP
- 格式,如:JPG,PCX,…不支持alpha通道
- 还有一些格式/查看器可以选择背景颜色,这也改变了外观
- 你可以部分地使用较低的alpha位计数来避免过多的噪点预览
- 例如
00XXh,80XXh or FFXXh
取决于混合函数 - 但是如果你真的需要每像素8位,那么在你使用的查看器中使用忽略Alpha通道的格式
您可以在图像
后面添加新的信息- 一些格式,如GIF使用文件结束标记
- 所以你可以在标记后添加你的数据…
- 但是你需要自己处理图片加载/保存
- 一些格式在头信息中使用偏移表或图像数据的起始地址
- 你可以把你的数据放在里面,甚至在图像数据
- 并相应地偏移起始地址
- 也为您需要处理加载/保存自己
- 这种方式的展位将不会在预览中显示额外的信息
- 但是查看器和防病毒应用程序可以检测到错误的大小
- 和写得不好的加载器甚至会崩溃…
您可以将信息放入图像的辅助数据/通道
- 格式,如GIF有额外的数据块用于字幕,动画命令,同步和更多
- 你可以把你的数据编码到里面
- 这种方式是干净的,但没有多少文件格式能够这样
- 这些文件的高级工具可以看到添加的信息,但你需要寻找它…