gpt4 book ai didi

c# - 从 byte[] 中检测 A) 颜色和 B) 图像大小的最快方法

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:02 24 4
gpt4 key购买 nike

目前,我们正在通过将图像转换为 Bitmap 并检查 height/width< 来确定大小以及图像是否包含颜色,并检查 PixelFormat 类型 System.Drawing.Imaging.PixelFormat.Format1bppIndexed 以检测颜色。

不过我注意到,单步执行代码可能需要 3-5 秒才能初始化此 Bitmap(至少对于非常高分辨率的 TIF 图像):

ms = new MemoryStream(fileBytes);
bitmap = new System.Drawing.Bitmap(ms);

有没有更快的方法来检查这两个东西,直接从字节数组,这样我就可以避免 Bitmap 类的缓慢,或者这只是大型 TIF 图像所期望的?

最佳答案

这不是我所希望的答案,所以我仍将其打开,但我确实想至少提及一个可能的“答案”。我最初的问题是加载 Bitmap 很慢。

我偶然发现了 this MSDN article ,它解释了 Image.FromStream() 如何具有允许您告诉它不要验证图像数据的重载。默认情况下,它设置为 true。通过使用这个新的重载,并将 validateImageData 设置为 false - 这极大地加快了速度。

例如:

using (FileStream fs = new FileStream(this.fileInfo.FullName, FileMode.Open, FileAccess.ReadWrite))
{
using (Image photo = Image.FromStream(fs, true, false))
{
// do stuff
}
}

文章的作者发现他的代码运行速度提高了 93 倍(!)。

关于c# - 从 byte[] 中检测 A) 颜色和 B) 图像大小的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com