zoukankan      html  css  js  c++  java
  • windows phone 使用GIF图片的方法(获取宽度与高度)

     WP7 是支持其显示的,只需使用Image控件可以显示PNG与JPG,但是GIF不行 需要用到开源控件:

    你可以再http://imagetools.codeplex.com/下载DLL以及源码。在引用ImageTools类库后,通过以下代码可以显示GIF图片。

    //创建gif控件
    
            AnimatedImage gifImage = new AnimatedImage();
    
            Decoders.AddDecoder<GifDecoder>();
    
            //根据图片字节流加载图片
    
            ExtendedImage extendedImg = new ExtendedImage();
    
            GifDecoder dc = new GifDecoder();
    
            dc.Decode(extendedImg, stream);
    
            gifImage.Source = extendedImg;

    GIF图片的文件格式相对比较简单,其中宽度和高度信息存放在逻辑视屏描述块的前4个字节,而逻辑视屏描述块是GIF图片的第二块区域,第一个区域为6个字节的头部,头部包括标识符和版本。下表列出到高度信息为止的各个字节的描述。

    名称 字节 说明
    头部    
    标识符 3 GIF  47 49 46
    版本 3 87a(89a) 38 39|37 61
    逻辑视屏描述块    
    宽度 2  
    高度 2  

      

     

     

     

     

     

     

    根据上面的格式很容易获取图片的高度和宽度信息,具体代码如下。

    //gif图片信息域(47 49 46 38 39|37 61) GIF89(7)a,共6字节
    
            //根据6字节判断是否为gif图片
    
            byte[] header = new byte[6];
    
            stream.Read(header, 0, 6);
    
            if (!(header[0] == 0x47 &&       // G
    
                    header[1] == 0x49 &&    // I
    
                    header[2] == 0x46 &&    // F
    
                    header[3] == 0x38 &&    // 8
    
                    (header[4] == 0x39 ||   // 9
    
                    header[4] == 0x37) &&   // 7
    
                    header[5] == 0x61))     // a
    
            {
    
                //不是GIF图片,退出
    
                return;
    
            }
    
    
    
            //读取宽度,高度 各2字节
    
            byte[] buffer = new byte[4];
    
            stream.Read(buffer, 0, buffer.Length);
    
    
    
            width_ = BitConverter.ToInt16(buffer, 0);
    
            height_ = BitConverter.ToInt16(buffer, 2);

     

          

  • 相关阅读:
    恢复更新
    Sun与Google结为战略合作伙伴, 可能联合Sun推出Web Office
    Outlook数据文件备份和按年存档的办法
    新装的几个软件试用体会(WPS 2005,Opera,QQ 2005 Beta3)
    关于VBA和Excel,GIS软件
    人格测试
    Taking a serious look at grids
    iPod、iMac 5、iTunes 6
    如此“自助”
    UCGIS优先研究领域介绍
  • 原文地址:https://www.cnblogs.com/zhibin/p/2553321.html
Copyright © 2011-2022 走看看