【问题标题】:Convert BitmapImage to WritableBitmap Windows phone 8.1 RT(runtime)将 BitmapImage 转换为 WritableBitmap Windows phone 8.1 RT(运行时)
【发布时间】:2016-03-18 10:48:46
【问题描述】:

我需要在图像显示之前对其进行灰度化。图片来自服务器。我使用 BitmapImage 作为 Image 的 Source。我可以使用 BitmapImage 显示图像。

现在我需要对图像进行灰度化,因为我发现可以使用 WritableBitmap 将其转换为灰度。我使用 WritableBitmapEx.WinRT 库进行灰度。

但问题是我无法在 WinRT 中将 BitmapImage 转换为 WritableBitmap

欢迎提出任何建议。

谢谢

【问题讨论】:

标签: windows-runtime windows-phone-8.1 winrt-xaml bitmapimage writablebitmap


【解决方案1】:

首先使用 WriteableBitmap 而不是 BitmapImage。除了访问 PixelBuffer 之外,它们的使用几乎相同。

您不能直接从 BitmapImage 中提取像素。所有将 BitmapImage “转换”为 WritableBitmap 的合理方法都从原始源获取数据。如果您无法获得原始 UriSource(因为您是从流中加载的)并且没有可用于从流中重新加载的流,那么您就不走运了。

唯一的其他(丑陋)选项是使用 RenderTargetBitmap 对图像进行快照

【讨论】:

  • 我直接使用 WritableBitmap 作为图像源的绑定。之前它被绑定到图像的 url。我在 Web 服务响应中获取 url,它们太多了。如果我直接使用 WritableBitmap,那么我需要在 web 服务本身中创建 WritableBitmap,以便在完成时显示它,因为 WritableBitmap 类型的属性直接绑定到图像 src。这需要在 UI 线程上完成。但是从 url 创建随机流然后打开该流以创建 WritableBitmap 需要时间。在这里,我需要为大约 20 到 30 张图像进行包装,这些图像需要同时显示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多