我多次尝试从本机资源加载位图,但我失败了很多次。
我尝试加载的图像在本机资源中是这样的:
http://i.stack.imgur.com/x7Jr8.jpg
我写图像的代码是这样的:
[DllImport("kernel32.dll")]
public static extern int UpdateResource(uint hUpdate, SqlDbType lpStructure, uint lpName, ushort wLanguage, int lpData, UIntPtr cbData);
[DllImport("kernel32.dll")]
public static extern UIntPtr BeginUpdateResource(string pFileName, bool bDeleteExistingResources);
[DllImport("kernel32.dll")]
public static extern bool EndUpdateResource(UIntPtr hUpdate, bool fDiscard);
public static bool WriteResource(string FileName, byte[] data, uint Name)
{
UIntPtr ptr = BeginUpdateResource(FileName, false);
GCHandle Handle = GCHandle.Alloc(data, GCHandleType.Pinned);
uint size = Convert.ToUInt32(Convert.ToUInt64(data.Length));
UIntPtr pt = new UIntPtr(size);
UpdateResource(ptr.ToUInt32(), SqlDbType.Bit, Name, 0, Handle.AddrOfPinnedObject().ToInt32(), (UIntPtr)Convert.ToUInt64(data.Length));
EndUpdateResource(ptr, false);
return true;
}
我尝试使用 LoadImage 和 LoadBitmap API 调用,但失败了很多次。
你能给我提供一个关于如何进行这种转换的片段吗?我想从本机资源中获取它并将其存储到 Bitmap 类(.NET 框架的常见 System.Drawing.Bitmap 类)中。我会很感激任何帮助。