2010-01-02 169 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>