在WPF中生成缩略图图像

时间:2010-01-02 04:53:27

标签: c# wpf image thumbnails

如何在以下方案中在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);
            }

2 个答案:

答案 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);
    }
}