【问题标题】:Get bitmapsource from a picturebox in C#从 C# 中的图片框中获取位图源
【发布时间】:2017-04-15 06:08:19
【问题描述】:

我有一个名为 picture 的图片框 我想获取这个图片框的图像并将其保存为位图源

BitmapSource myPic;
  myPic = picture.Image;

但我收到此错误:

严重性代码描述项目文件行抑制状态 错误 CS0029 无法将类型“System.Drawing.Image”隐式转换为“System.Windows.Media.Imaging.BitmapSource”

【问题讨论】:

    标签: c# bitmap bitmapsource


    【解决方案1】:

    您需要将 System.Drawing.Image 转换为 System.Drawing.Bitmap,然后将其转换为 BitmapSource。

    您可以选择以下解决方案之一: fast converting Bitmap to BitmapSource wpf

    【讨论】:

      【解决方案2】:

      使用这个方法:

      public BitmapSource ImageToBitmapSource(System.Drawing.Image image)
      {
              var bitmap = new System.Drawing.Bitmap(image);
      
              var bitSrc =BitmapToBitmapSource(bitmap);
      
              bitmap.Dispose();
              bitmap = null;
      
              return bitSrc;
      }
      
      public BitmapSource BitmapToBitmapSource(System.Drawing.Bitmap source)
      {
              BitmapSource bitSrc = null;
      
              var hBitmap = source.GetHbitmap();
      
              try
              {
                  bitSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                      hBitmap,
                      IntPtr.Zero,
                      Int32Rect.Empty,
                      BitmapSizeOptions.FromEmptyOptions());
              }
              catch (Win32Exception)
              {
                  bitSrc = null;
              }
      
              return bitSrc;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多