如何在以下方案中在WPF中生成缩略图?
using (MemoryStream mem = new MemoryStream(imgbytes))
{
BitmapImage jpgimage = new BitmapImage();
jpgimage.BeginInit();
jpgimage.CacheOption = BitmapCacheOption.OnLoad;
jpgimage.StreamSource = mem;
jpgimage.EndInit();
Image wpfimage = new Image();
wpfimage.Source = jpgimage.Clone();
lbx.Items.Add(wpfimage);
lbx.UpdateLayout();
Thread.Sleep(1000);
}
答案 0 :(得分:5)
这个对我很有用
<Image Width="120" Height="120" HorizontalAlignment="Center">
<Image.Source>
<BitmapImage DecodePixelWidth="100" DecodePixelHeight="100" UriSource="Garden.jpg" />
</Image.Source>
</Image>
答案 1 :(得分:2)
这是我用来将我从网上下载的图像转换为缩略图的一些代码。这有帮助吗?据推测,你可以删除我保存到文件的位。
using (var ms = new MemoryStream(e.Result))
{
var bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = ms;
bi.DecodePixelWidth = _maxThumbnailWidth;
bi.EndInit();
var encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bi));
using (var fs = new FileStream(filename, FileMode.Create))
{
encoder.Save(fs);
}
}