2010-01-02 135 views
0

如何在以下方案中生成WPF中的缩略图图像?在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

下面是我用来将我从网上下载的图像转换为缩略图图像的一些代码。这有帮助吗?据推测,你可以将我保存的文件剪下来。

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); 
    } 
} 
+0

性能点。对于JPEGS它真棒。 。!寻找替代TIF格式! – Jay 2015-02-20 05:02:54

+0

明天我有一个测试版,这将是一个showstopper。我的记忆力已经耗尽,而且这个伎俩。谢谢! – NielW 2017-03-08 05:10:52

3

这一个完美工作了的观点这缺点,我与解码像素装载数百TIFF的时候碰到过这样的,WPF吮吸我

 <Image Width="120" Height="120" HorizontalAlignment="Center"> 
      <Image.Source>    
       <BitmapImage DecodePixelWidth="100" DecodePixelHeight="100" UriSource="Garden.jpg" /> 
      </Image.Source> 
     </Image>