对BITMAP的Bitmap类的等效C#调用。VB6中的IsLoaded调用是什么?

问题描述 投票:1回答:1

我正在将VB6中的旧程序转换为C#.NET Framework 4.8

我在VB6中有如下电话

Private m_FingerprintBmp As BITMAP
. . .
Set m_FingerprintBmp = New BITMAP
m_FingerprintBmp.LoadFromByteArray fingerprintByteArray
If m_FingerprintBmp.IsLoaded Then

在C#中,我的转换如下

Bitmap m_FingerprintBmp;
. . .
m_FingerprintBmp = new Bitmap(); // Invalid no default ctor
m_FingerprintBmp.LoadFromByteArray(fingerprintByteArray);
if (m_FingerprintBmp.IsLoaded)

但是.Net中没有Bitmap类的默认构造函数,并且C#中没有BitFrom类的LoadFromByteArray()方法和IsLoaded属性或方法。.NET中的等效调用是什么?

[编辑]我确定的是VB6支持未加载图像的BITMAP实例的概念,但是.NET Bitmap类没有默认的构造函数,因此似乎任何.NET Bitmap实例都必须包含一些位图图像的形式。因此,.NET Bitmap类不存在IsLoaded的概念。所以我的结论是,我应该使用空引用来指示已卸载的位图,而不是没有图像的实例。

有人可以确认我的结论正确吗?

c# bitmap vb6 vb6-migration
1个回答
0
投票

我会尝试使用Image.FromStream(new MemoryStream(fingerprintByteArray)。如果数据适用于此类,则应从中获取一个Image并在此时将其完全加载。

请注意,您要使用的Bitmap来自GDI +,与VB6中的BITMAP不同。

© www.soinside.com 2019 - 2024. All rights reserved.