我有几个UIElement
s,包括一个Image
(带有外部 URL 图像),然后我想捕捉这些元素的缩略图,所以我WriteableBitmap
用来捕捉每个 UIElement 的像素。
但是,当我尝试捕获像素以供Image
使用时:
WriteableBitmap wb = new WriteableBitmap(image, new ScaleTransform()
{
ScaleX = 0.5,
ScaleY = 0.5,
});
...
wb.GetPixeli(x, y); // Throws exception
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap(v=vs.95).aspx
如果 WriteableBitmap 是使用跨域内容构造的,则 WriteableBitmap 类具有限制对 Pixels 数组的访问的安全模型。例如,使用引用来自另一个域的 URL 的 BitmapImage 构造的 WriteableBitmap 不允许访问其 Pixels 数组。该限制扩展到使用 URL 派生属性设置其部分或全部内容的任何 UI 元素。特别是,此限制适用于“从 MediaElement 抓取正在运行的视频的帧”场景。如果 MediaElement.Source 引用来自另一个域的视频文件,则通过引用 MediaElement 作为元素源创建的 WriteableBitmap 会限制对 Pixels 数组的访问。
那么为了捕捉这几个UIElement
s(包括一个Image
元素)的缩略图,我是否必须将图像下载到临时目录然后渲染它?