【问题标题】:UWP Image to Bitmap ConversionUWP 图像到位图的转换
【发布时间】:2017-04-27 04:52:57
【问题描述】:

我正在尝试将图像转换为位图以使用 AForge 过滤器。在 MSN 网站上,我看到 Bitmap 有一个图像构造器,但是当我尝试它时它不起作用。这是我的代码:

                     Bitmap bitmap = new Bitmap(image1);

【问题讨论】:

  • image1的数据类型是什么?还有你所说的“它不起作用”是什么意思
  • image1 是 Windows.UI.Xaml.Controls.Image,按照上面的操作告诉我 Bitmap 不包含构造函数,这与他们在网站上所说的相矛盾。跨度>
  • 你试过直接投吗? Bitmap bitmap = image1 as Bitmap
  • 是的,它给了我这个错误:严重性代码描述项目文件行抑制状态错误 CS0039 无法通过 a 将类型“Windows.UI.Xaml.Controls.Image”转换为“System.Drawing.Bitmap”引用转换、装箱转换、拆箱转换、包装转换或空类型转换 MyFirstJob C:\Users\Robert\documents\visual studio 2015\Projects\MyFirstJob\MyFirstJob\MainPage.xaml.cs 69 Active

标签: c# uwp


【解决方案1】:

您不能直接在System.Drawing.BitmapWindows.UI.Xaml.Controls.Image 之间进行转换。

将 AForge 视为使用 Bitmap 类,而 UWP 使用 WritableBitmap 来表示其图像。您需要找到一种在两者之间进行转换的方法。

看看这个Aforge.Net libraryUsage部分,它提供了一种做事方式(引用):

// Use explicit operator to convert from WriteableBitmap to Bitmap
Bitmap bitmap = (Bitmap)aWriteableBitmapObject;

// Apply one or more filter functions on the Bitmap object
var filter1 = AForge.Imaging.Filters.Grayscale.CommonAlgorithms.RMY;
bitmap = filter1.Apply(bitmap);
var filter2 = new AForge.Imaging.Filters.CannyEdgeDetector();
filter2.ApplyInPlace(bitmap);

// Use explicit operator to convert back from Bitmap to WriteableBitmap
aWriteableBitmapObject = (WriteableBitmap)bitmap;

【讨论】:

  • 我能看到 Aforge.Net 的源代码吗?
  • 这是来自其网站的 Aforge.Net 官方来源的link
  • 谢谢,但是 vs 说 aWriteableBitmapObject = (WriteableBitmap)bitmap; 位图无法转换为 WriteableBitmap
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 2018-04-03
  • 2014-06-09
相关资源
最近更新 更多