前面介绍了PNG和JPG图片的尺寸解析,Windows Phone是直接支持这两种图片的显示的,使用Image控件。而GIF图片需要用第三方开发的控件来显示,ImageTools是开源社区CodePlex提供的,可以通过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个字节的头部,头部包括标识符和版本。下表列出到高度信息为止的各个字节的描述。
根据上面的格式很容易获取图片的高度和宽度信息,具体代码如下。
//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);
作者:宇之乐
出处:http://www.cnblogs.com/huizhang212/
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片
, 控件
, 视屏监控
, buffer
, 字节
, header
, 高度
视屏
phone尺寸、gif缩小尺寸、gif尺寸修改、gif尺寸在线修改、微信gif尺寸,以便于您获取更多的相关知识。