【发布时间】:2018-08-10 05:04:13
【问题描述】:
您好,我有一个灰度 jpeg 图像,我需要打开它并将其转换为 rgb。 我需要最快的方法,但我一直找不到。 对我来说,用灰度值填充 rgb 值很好。只是使用 setpixel 和 getpixel 需要一段时间。 我想知道是否有我忽略的最快方法。
在网络上有很多将 rgb 转换为灰度的解决方案,但很难找到相反的解决方案。
我尝试过使用 FormatConvertedBitmap 但我只是得到错误我不知道如何 正确使用它。如果这是解决方案,请谁能给我写代码以从 jpeg 文件加载灰度图像,然后创建 rgb 位图?
提前致谢!!!
【问题讨论】:
-
进行图像处理的最快方法是使用字节数据而不是嵌入的 SetPixel 方法。如果您想从中获得彩色图像,那么准确的结果实际上是不可能的。有许多组合可以导致单个灰度图像。如果您只想要一张包含所有三种颜色的像素数据的图像并且您接受灰度值,那么它应该非常容易。看看这里:stackoverflow.com/a/2016509/4871566
-
据我所知,一旦图像以灰度保存,就无法推断出原始颜色值。
-
您可以创建一个相同大小的rgb图像并将灰度位图绘制到它上面。或者使用lockbits填写数据..
-
这个问题非常不清楚,所以你只想要一个保存为灰度为 24 位或 32 位像素格式的位图?
-
我的图片是8bit的。只有一个通道0-255。我需要一个只有三个通道R = G = B的灰度图像。我希望现在我已经消除了所有疑问。
标签: c# .net image rgb grayscale