2014-09-24 27 views
1

以下是应该帮助你理解我的不幸的短片;( 我试图在图片控件中显示特定的位图帧(Tif页)但我找不到图像控制的任何适当的成员。XAML:图片应该显示特定的位图帧

<Image> 
    <Image.Source> 
     <BitmapImage 
      DecodePixelWidth="500" 
      UriSource="C:\...\MultiPage.tif" 
      CacheOption="OnLoad" 
      CreateOptions="PreservePixelFormat" 
      RenderOptions.BitmapScalingMode="HighQuality" 
      RenderOptions.EdgeMode="Aliased" 
      <!--The following line does not work of course but it should show what I mean:--> 
      BitmapFrameIndex="3" 
     /> 
    </Image.Source> 
</Image> 

回答

0

你可以做,在使用TiffBitmapDecoder Class代码,但我不那么肯定,它可以在XAML纯粹的完成。该TiffBitmapDecoder.Frames property提供了从单个帧访问图片:

TiffBitmapDecoder tiffBitmapDecoder = new TiffBitmapDecoder(new Uri(filename), 
    BitmapCreateOptions.None, BitmapCacheOption.None); 

然后你就可以访问一个框架是这样的:

BitmapFrame bitmapFrame = tiffBitmapDecoder.Frames[yourRequiredIndex]; 

或者从它创建一个BitmapSource实例,而不是:

BitmapSource bitmapSource = tiffBitmapDecoder.Frames[yourRequiredIndex]; 

由于BitmapSource Class扩展ImageSource类,那么你应该可以设置此直接为Image.Source值:

YourImage.Source = bitmapSource; 
+0

是啊,就是这样......谢谢 – 2014-09-24 09:46:35

+0

@NoelWidmer你可以p也可以将其包装在派生的BitmapSource中,以使其可用于XAML。 – Clemens 2014-09-24 10:41:18