Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 8bpp图像太暗_Image Processing_Bitmap - Fatal编程技术网

Image processing 8bpp图像太暗

Image processing 8bpp图像太暗,image-processing,bitmap,Image Processing,Bitmap,我为一个图像创建了一个查看器,该图像最初是一个索引的8bpp 256色文件。我首先读取它的调色板,然后是图像字节本身,它们引用256调色板中的一种颜色 利用这些数据,我创建了一个位图(32bpp,但也尝试了各种16bpp),并用SetPixel为每个像素赋值 结果是正确的图像,但颜色太暗 你知道为什么会这样吗?我想问题在于像素格式,但我如何解决它?听起来您可能无法将原始颜色的字节值缩放到新的存储大小。在16/32位环境中直接使用8位值确实会使图像非常暗,因为它们的值最多为255,而16或32位的

我为一个图像创建了一个查看器,该图像最初是一个索引的8bpp 256色文件。我首先读取它的调色板,然后是图像字节本身,它们引用256调色板中的一种颜色

利用这些数据,我创建了一个位图(32bpp,但也尝试了各种16bpp),并用SetPixel为每个像素赋值

结果是正确的图像,但颜色太暗


你知道为什么会这样吗?我想问题在于像素格式,但我如何解决它?

听起来您可能无法将原始颜色的字节值缩放到新的存储大小。在16/32位环境中直接使用8位值确实会使图像非常暗,因为它们的值最多为255,而16或32位的值可能会大得多。

听起来您可能无法将原始颜色的字节值缩放到新的存储大小。在16/32位环境中直接使用8位值确实会使图像非常暗,因为它们的值最多为255,而16或32位的值可能要大得多。

pallete颜色可能假设伽马曲线?我不会这么说,因为我正在将Pascal程序转换为.NET。原始程序以正确的颜色显示图像,无需进一步调整。pallete颜色可能假设为gamma曲线?我不会这么说,因为我正在将Pascal程序转换为.NET。原始程序以正确的颜色显示图像,没有进一步的调整,因为使用16bpp格式会稍微亮一些。如何缩放它们?即使如此,使用SetPixel(int、int、Color)时,R、G和B值最多只能达到255。否则我会出现运行时错误。解决了它。正如有人向我指出的,问题出在VGA调色板上,每种颜色最多有18位(每通道6位)。所以我乘以4,得到了一个很好的近似值。谢谢警察局。无法将此作为自我回答发布。。。将其作为评论发布。这是有道理的,因为使用16bpp格式稍微好一点。如何缩放它们?即使如此,使用SetPixel(int、int、Color)时,R、G和B值最多只能达到255。否则我会出现运行时错误。解决了它。正如有人向我指出的,问题出在VGA调色板上,每种颜色最多有18位(每通道6位)。所以我乘以4,得到了一个很好的近似值。谢谢警察局。无法将此作为自我回答发布。。。将其作为评论发布。