在线程池线程上调整Windows Phone 7上的图像大小?

Tyl*_*ler 19 .net c# image windows-phone-7

我正在编写一个处理大量图像的Windows Phone 7应用程序 - 这些图像的范围可以从几百像素到1080P(未来可能更高).

图像是非常耗费资源的,所以我在显示它们之前走了缓存+调整手机图像大小的路径.

这意味着在用户输入图像存储的IP地址后第一次设置时,我可以要求他们等待几分钟,同时检索/调整大小/缓存.从那时起,他们可以拥有漂亮而快速的表现.

目前,我的缓存管理器通过Uri和文件位置的字典跟踪图像.我有一个队列,一次最多可处理5个图像(异步Web请求,调整大小是在线程池线程上完成的).

我遇到的问题是Silverlight中的WritableBitmap类是一个UI元素,这意味着我必须通过Dispatcher转换到UI线程来进行实际的大小调整,这是一个愚蠢的事情并减慢整个事情 - 这也意味着我的缓存管理器是有效的单线程.

所以它进入缓存管理器(线程池) - >异步Web请求(线程池) - >回调(线程池) - >调整大小(UI线程) - >将缓存作业标记为完成(线程池).

我一直在寻找第三方库,它将A)编译并在Windows Phone 7和B上运行.能够通过操纵流或字节数组来调整各种格式的图像,而不依赖于UI线程.

有没有人有这方面的经验?

干杯,

泰勒

Der*_*kin 0

ImageTools库既支持 WP7 又支持图像调整大小,因此您可能会更成功地使用它