来自 Stream 的位图构造函数在紧凑框架 1 中太慢
Constructor for Bitmap from Stream is too slow in compact framework 1
我有 'png' 个尺寸为 200x200 的图片。 8 位颜色。图片大小为10k。
图像在内存中作为字节数组。
调用位图 bmp = new Bitmap(new MemoryStream(bytes));花费我大约 60 毫秒。
它似乎渴望这样的图像尺寸。
我知道 PNG 是压缩图像,但仍然认为 60 毫秒的时间太多了。
有人知道从 byte[] 构造位图的更快方法吗?
这可能不是您要找的答案,但评论太长了。
我发现在我的设备上第一次加载图像所花的时间是后续图像的两倍。
Bitmap
构造函数接受文件名或 Stream
,它们可能显示相同的性能。我还尝试使用非托管代码(目前为 .bmp 文件)加载图像,但 Bitmap.FromHbitmap()
比使用 SHLoadDIBitmap
(17 毫秒)从磁盘加载图像需要更多时间(35 毫秒)!
据我所知,无论它在做什么,都无法获得 Bitmap
对象而不受到惩罚。也许通过使用非托管代码来加载和显示图像,您可以加快速度,但据我所知,.png 过滤器位于 COM 接口之后,这需要相当长的时间才能在 .NET 中正常运行。
我有 'png' 个尺寸为 200x200 的图片。 8 位颜色。图片大小为10k。 图像在内存中作为字节数组。 调用位图 bmp = new Bitmap(new MemoryStream(bytes));花费我大约 60 毫秒。 它似乎渴望这样的图像尺寸。 我知道 PNG 是压缩图像,但仍然认为 60 毫秒的时间太多了。 有人知道从 byte[] 构造位图的更快方法吗?
这可能不是您要找的答案,但评论太长了。
我发现在我的设备上第一次加载图像所花的时间是后续图像的两倍。
Bitmap
构造函数接受文件名或 Stream
,它们可能显示相同的性能。我还尝试使用非托管代码(目前为 .bmp 文件)加载图像,但 Bitmap.FromHbitmap()
比使用 SHLoadDIBitmap
(17 毫秒)从磁盘加载图像需要更多时间(35 毫秒)!
据我所知,无论它在做什么,都无法获得 Bitmap
对象而不受到惩罚。也许通过使用非托管代码来加载和显示图像,您可以加快速度,但据我所知,.png 过滤器位于 COM 接口之后,这需要相当长的时间才能在 .NET 中正常运行。