我有一个将原始字节数据转换为位图的功能,以便显示。该过程正在使用Windows CE 6.0的嵌入式平台中完成。这个功能有效。但是,转换时间太长。
我不确定这个问题是源于我的逻辑还是其他原因。请指教。
private Bitmap GetBitMap(byte[] byImage)
{
Bitmap bm = new Bitmap(IMG_X, IMG_Y);
for (int j = 0; j < IMG_Y; j++)
{
for (int i = 0; i < IMG_X; i++)
{
int rgb = (int)byImage[i + j * IMG_X];
Color color = Color.FromArgb(rgb, rgb, rgb);
bm.SetPixel(i, j, color);
}
}
return bm;
}
答案 0 :(得分:0)
您似乎正在使用.NET,如果您需要执行图像处理,这可能不是最有效的解决方案。如果您计划开发高级应用程序,UI等,.NET Compact Framework非常有效且高效,但是在编译时,生成的机器代码不能像从本机编译器生成的代码那样优化。您还使用高级位图类来执行转换,每个setPixel调用将使用许多CPU周期。您可以编写一些C / C ++代码来执行此操作,直接在内存中写入位图数据并明确减少转换所需的CPU时间