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

时间:2010-09-20 03:04:13

标签: c# image image-processing

我有一个函数可以将Handle带到图像中:

DoSomethingWithImage( int imageHandle)
{
}

在我的主要内容中,我有一个Image myImage,它位于内存中。 我怎样才能获得HandlemyImage,以便我可以将Handle传递给DoSomethingWithImage()

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

1 个答案:

答案 0 :(得分:2)

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

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