在C#中获取内存中的图像句柄

我有一个函数,可以Handle图像的Handle

 DoSomethingWithImage( int imageHandle) { } 

在我的主要内容中,我有一个Image myImage ,它驻留在内存中。 如何获取myImageHandle ,以便我可以将Handle传递给DoSomethingWithImage()

  main() { //memorySTream is a byte[] Image myImage = Image.FromStream(memoryStream, true); DoSomethingWithImage( ??? ); } 

Image只是抽象的基类; 后代不一定保证甚至 Windows句柄。 您需要知道特定类型的图像 – 您最常使用的SDK也是如此; 可能假设句柄对应于特定格式(我猜测位图)。

如果图像实际上是Bitmap ,那么您可能希望使用Bitmap.GetHbitmap方法。 另一方面,如果图像确实是Metafile ,那么您需要使用Metafile.GetHenhmetafile方法来获取句柄。