首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将 IPictureDisp 转换为 System.Drawing.Image

要将 IPictureDisp 转换为 System.Drawing.Image,您需要使用 OLE 自动化和 Windows 窗体的图像处理功能。以下是一个简单的示例,说明如何执行此操作:

  1. 首先,确保引用了以下命名空间:
代码语言:csharp
复制
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
  1. 然后,使用以下代码将 IPictureDisp 转换为 System.Drawing.Image:
代码语言:csharp
复制
public static Image ConvertIPictureDispToImage(object picture)
{
    if (picture == null)
        throw new ArgumentNullException("picture");

    // 获取图片的句柄
    IntPtr hPal = GetStockObject(DEFAULT_PALETTE);
    IntPtr hdc = GetDC(IntPtr.Zero);
    IntPtr hdcMem = CreateCompatibleDC(hdc);
    IntPtr hBitmap = IntPtr.Zero;
    IntPtr hOldPal = IntPtr.Zero;
    Image img = null;

    try
    {
        // 获取图片的宽度和高度
        int width = picture.Width;
        int height = picture.Height;

        // 创建兼容的位图
        hBitmap = CreateCompatibleBitmap(hdc, width, height);

        // 选择新的位图
        hOldPal = SelectPalette(hdcMem, hPal, 0);
        RealizePalette(hdcMem);
        SelectObject(hdcMem, hBitmap);

        // 绘制图片
        picture.Render(hdcMem, 0, 0, width, height, 0, height, width, -height, IntPtr.Zero);

        // 将位图转换为 System.Drawing.Image
        Bitmap bmp = Image.FromHbitmap(hBitmap);
        img = (Image)bmp.Clone();
    }
    finally
    {
        // 释放资源
        if (hOldPal != IntPtr.Zero)
            SelectPalette(hdcMem, hOldPal, 0);

        if (hBitmap != IntPtr.Zero)
            DeleteObject(hBitmap);

        if (hdcMem != IntPtr.Zero)
            DeleteDC(hdcMem);

        if (hdc != IntPtr.Zero)
            ReleaseDC(IntPtr.Zero, hdc);
    }

    return img;
}
  1. 最后,确保您的应用程序引用了以下依赖项:
  • System.Drawing.Common
  • System.Runtime.InteropServices

这个方法将 IPictureDisp 转换为 System.Drawing.Image,并且不涉及任何云计算品牌商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何将XML转换为HL7

之前的文章中我们介绍了如何将HL7换为XML,本文介绍另一个方向的转换,即如何将XML转换为HL7。...常见的EDI报文标准包括X12、EDIDACT和VDA等,本文主要介绍HL7报文标准,实现如何将XML转换为HL7。HL7包括构建和交换医疗保健信息的标准,以及系统集成和互操作性的其他标准。...本文主要介绍如何将XML转换为HL7。 添加HL7 进行报文转换前,首先需要下载知行EDI系统。...以便区分,至此完成HL7换端口在工作流中的添加。...想要处理XML文件之间的映射关系需要用到XML Map端口,详细内容可以参考:XML Map端口详解 以上完成将XML转换为HL7,需要注意,当生成HL7文件时,必须选择转换类型为XML转换为HL7。

3.7K30

如何将PyTorch、TensorFlow模型转换为PaddlePaddle模型

本文手把手教你使用X2Paddle将PyTorch、TensorFlow模型转换为PaddlePaddle模型,并提供了PaddlePaddle模型的使用实例。...PaddlePaddle的你 希望快速使用PaddlePaddle又不想重新训练模型的你 垂涎AI Studio的V100已久却不想花太多时间学习PaddlePaddle细节的你 将PyTorch模型转换为...PaddlePaddle模型 将PyTorch模型转换为PaddlePaddle模型需要先把PyTorch转换为onnx模型,然后转换为PaddlePaddle模型。...将TensorFlow模型转换 为PaddlePaddle模型 注:model.pb为TF训练好的模型,pb_model为转换为PaddlePaddle之后的文件。 1....预测用示例图像如下所示,在训练过程中,我们将cat的标签转换为0,dog的标签为1。 ? 执行如下命令进行预测: !

2.6K20
领券