在windows phone中,使用listbox显示一列图片非常常用,由于本人是wp菜鸟,以前做winform程序的,刚刚接触windows phone开发,将图像直接放在Image控件上,图像小点还凑合,当图像稍大并且数量稍多的时候,使listbox迅速往下滑就会出现渲染不及时的现象。由于刚接触windows phone对一些类库还不熟悉。找啊找,搜啊搜就是没找到。好现在终于找到了。赶紧记录下来吧。用到的朋友可以直接拿去根据需要稍作修改。
/// <summary>
/// 获取缩略图
/// </summary>
/// <param name="source">原图像流</param>
/// <param name="width">缩略图宽</param>
/// <param name="height">缩略图高</param>
/// <returns>缩略图流</returns>
public static Stream GetThumbImage(Stream source, int width, int height)
{
if (source == null)
return null;
Stream target=new MemoryStream();
BitmapImage bitmap = new BitmapImage();
bitmap.CreateOptions = BitmapCreateOptions.None;
bitmap.SetSource(source);
WriteableBitmap wb = new WriteableBitmap(bitmap);
wb.SaveJpeg(target, width, height, 0, 75);
return target;
}
这样就不会再出现那种问题了!source流不用的话就关掉。source.Close();