快速显示来自 byte[] .net Compact Framework 的原始像素数据
我正在使用光栅,我想知道使用 .net CF 在屏幕上绘制 byte[] 的最快方法。该数组是一个标准的 24 位光栅(Screen.Width * Screen.Height * 3 长度,RGB 顺序),现在我将数组保存到 Bitmap 对象并使用 Graphics.DrawImage(bmp) 将其绘制到屏幕上方法。我觉得必须有某种方法可以做到这一点而无需创建位图。
我正在使用 C#,但如果需要的话我可以使用本机(如果可能的话,我更喜欢 P/Invokes,假设是这种情况)
感谢您的帮助!
I'm playing with rasters and I want to know the fastest way to paint a byte[] to the screen using the .net CF. The array is a standard 24bit raster (Screen.Width * Screen.Height * 3 in length, RGB order) and right now I'm saving the array to a Bitmap object and drawing it to the screen using the Graphics.DrawImage(bmp) method. I feel that there must be someway of doing this w/o having to create a Bitmap.
I'm using C#, but I can to go native if needs be (I'd prefer P/Invokes if possible, assuming that is the case)
Thanks for any help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
绘制图像时,我发现本机
BitBlt
的性能比使用 .NETGraphics
好得多,您可以使用它来显示您的Bitmap
甚至使用 GDI 来创建位图。http://msdn.microsoft.com/en-us/library/aa923590.aspx
在 .NET CF 中使用
BitBlt
的示例(尽管这与您在 VB.NET 中所做的相反):http://anoriginalidea.wordpress.com/2008/01/ 03/使用-vbnet-on-the-compact-framework-20获取屏幕截图/
When drawing images, I found the native
BitBlt
to perform alot better than using .NETGraphics
, you could use it to display yourBitmap
or even use GDI to create the bitmap instead.http://msdn.microsoft.com/en-us/library/aa923590.aspx
An example of using
BitBlt
in .NET CF (although it's the reverse of what you are doing, and in VB.NET):http://anoriginalidea.wordpress.com/2008/01/03/getting-a-screenshot-using-vbnet-on-the-compact-framework-20/