StorageFile.GetScaledImageAsThumbnailAsync 不支持元数据旋转图像
Posted
技术标签:
【中文标题】StorageFile.GetScaledImageAsThumbnailAsync 不支持元数据旋转图像【英文标题】:StorageFile.GetScaledImageAsThumbnailAsync does not support metadata rotated image 【发布时间】:2019-11-25 15:57:43 【问题描述】:通过 Windows 10 编辑器编辑图像。例如。旋转图像:
尝试打开此图片:IRandomAccessStream thumb = await file.GetScaledImageAsThumbnailAsync(ThumbnailMode.SingleItem, 4096);
GetScaledImageAsThumbnailAsync
方法永远不会返回,不会出现错误或异常。
我需要这个IRandomAccessStream
来填充BitmapDecoder
的内部映射:
_bitmapDict[index] = await BitmapDecoder.CreateAsync(thumb);
任何想法如何解决GetScaledImageAsThumbnailAsync
?
【问题讨论】:
可能是图片没有与之关联的缩略图,而您却得到了null
回复?
@JSteward 不幸的是没有,缩略图正常加载...加载缩略图我正在使用file.GetScaledImageAsThumbnailAsync(ThumbnailMode.ListView, Convert.ToUInt32(textureWidth), ThumbnailOptions.ResizeThumbnail);
并且没有null
,因为我提到了它的异步调用(await
)而且它永远不会回来,即使在 5 分钟后也不...
【参考方案1】:
我可以重现您的问题,如果您使用图像编辑器编辑图像,然后使用GetScaledImageAsThumbnailAsync
方法打开它,它可能会得到StorageItemThumbnail
,但这需要很长时间。图片越大,使用时间越长。目前有一种使用 Paint 编辑图片的解决方法。
【讨论】:
一旦我在开发一个应用程序,我就不能要求用户打开画图并正确旋转你不觉得吗?! 是的,我知道了,我会向相关团队报告这个问题。 @nico-zhu-msft 谢谢!如果您对他们有任何反馈,请告诉我! :D 嗨,Marcelo,感谢您报告此事。我们一直在研究它,它似乎是开发人员的一个已知问题,它导致 RuntimeBroker 在执行此任务时对具有此类旋转元数据的图像执行此任务时 CPU 内核峰值。我们仍在进一步调查。 我要求对此进行修复。我不能保证它何时或是否会发布,但请继续关注发布说明以获取任何更新。 docs.microsoft.com/en-us/windows/whats-new以上是关于StorageFile.GetScaledImageAsThumbnailAsync 不支持元数据旋转图像的主要内容,如果未能解决你的问题,请参考以下文章