0

jpg问题是如果我要将图像或gif图像拖到,如何区分这两种图像格式inkcanvas?当我运行它时,我将我的gif图像拖到了inkcanvas但它没有进入第一个条件。它去了 else if。

gif在顶部声明为

Viewbox vbMedia = new Viewbox();    
MediaElement gif = new MediaElement();    
if (gif.Source == new Uri("E:\\New folder\\Drawing\\Images\\Themes\\Gif\\bruce.gif", UriKind.Absolute))
{
    vbMedia.Width = 70;
    vbMedia.Height = 70;

    gif.LoadedBehavior = MediaState.Play;
    gif.UnloadedBehavior = MediaState.Play;

    vbMedia.RenderTransform = group;                    
    vbMedia.Child = gif;

    this.InkCanvas1.Children.Add(vbMedia);        
}                
else                
{                    
    image.Width = 70;                  
    image.Height = 70;                    
    image.RenderTransform = group;

    this.InkCanvas1.Children.Add(image);        
}
4

1 回答 1

0

首先,您始终处于 else 条件,因为您MediaElement gif在检查gif.Source值之前创建了行。因此,此时它始终为空,并且您始终处于 else 条件。

现在回答你的问题

如何区分这两种图像格式?

我认为这个答案可能会对您有所帮助:我怎么知道我从流中得到什么图像格式? 在你的情况下,它可能是这样的:

    System.Drawing.Image image = System.Drawing.Image.FromFile("E:\\New folder\\Drawing\\Images\\Themes\\Gif\\bruce.gif");
    if (ImageFormat.Gif.Equals(image.RawFormat))
    {
        // GIF
    }
    else if (ImageFormat.Jpeg.Equals(image.RawFormat))
    {
        // JPEG
    }
于 2014-08-21T06:48:25.540 回答