Windows Phone 解析图片格式

华强北S86手表技术拆解:蓝牙协议、逆向分析与二次开发实战 蓝牙低功耗(BLE)通信是可穿戴设备与手机等终端进行数据交换的核心技术,其基于GATT协议的服务与特征值架构,实现了低功耗、高效率的设备互联。在物联网和嵌入式开发领域,理解蓝牙协议栈、掌握串口调试与逆向工程方法,是进行设备互联、协议分析和二次开发的基础技能。这些技术不仅用于智能穿戴设备的功能实现,如健康数据监测、远程控制等,也为开发者提供了低成本的原型验证平台。本文以华强北S86智能手表为例,深入解析其蓝牙拍照、双模蓝牙等功能的实现原理,并通过实战案例演示如何通过逆向分析配套APP、抓取通信协议,搭建开发环 阅读详情

作者:宇之乐
出处:http://www.cnblogs.com/huizhang212/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


在Windows Phone中用于显示图片的是Image控件,不过Image控件目前只支持两种格式的图片,即Png和Jpg。平时我们经常用的图片还有Gif和Bmp两种,对于这两种图片我们无法通过Image来显示。需要用第三方开发的控件来显示,ImageTools是开源社区CodePlex提供的,可以通过http://imagetools.codeplex.com/下载DLL以及源码,通过ImageTools我们可以显示Gif和Bmp图片。

  因此对于比较常用的图片格式Png、Jpg、Gif、Bmp,我们需要针对不同的图片格式使用不同的控件来显示,这里就有一个来解析图片格式的问题。我们不能单纯的用文件后缀名.png、.jpg、.jpeg、.gif、.bmp来区分图片格式,因为实际上我们可以直接修改图片后缀名,修改后缀名并不能修改图片的格式,图片还是保持它原来的格式。
  图片文件的格式结果中,在头部信息(一般都会在图片文件最开始的几个字节)中都会包含图片的格式信息。下面就列车常用的这几种格式图片的头部信息标识(十六进制)。
  1.Png图片文件包括8字节:89 50 4E 47 0D 0A 1A 0A。即为 .PNG....。
  2.Jpg图片文件包括2字节:FF D8。
  3.Gif图片文件包括6字节:47 49 46 38 39|37 61 。即为 GIF89(7)a。
  4.Bmp图片文件包括2字节:42 4D。即为 BM。
  根据图片问题头标识信息我们可以能很方便的判断出文件的格式,首先我们需要获取图片文件的字节流信息,代码如下。

        //获取图片文件流,根据图片是资源文件或者独立存储文件分别处理
        Stream stream = null;
        //如果是资源文件处理
        StreamResourceInfo info = Application.GetResourceStream(new Uri(path, UriKind.Relative));
        if (info != null)
        {
            stream = info.Stream;
        }
        //如果是独立存储文件处理
        using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            //打开文件
            stream = myIsolatedStorage.OpenFile(path, FileMode.Open, FileAccess.Read);
        }

  从图片文件流stream中读取8个字节,然后再根据不同的图片格式做文件头匹配比较具能判断出文件的格式,代码如下。


        /// <summary>
        /// 定义图片格式
        /// </summary>
        public enum ImageType
        {
            Null,
            Png,
            Jpg,
            Gif,
            Bmp
        }

        /// <summary>
        /// 获取图片格式
        /// </summary>
        private ImageType getImageType(Stream stream)
        {
            //图片格式
            ImageType type = ImageType.Null;

            //读取图片文件头8个字节,并根据若干个字节来确定图片格式
            byte[] header = new byte[8];
            stream.Read(header, 0, 8);

            //确定图片格式
            if (header[0] == 0x89 &&
                header[1] == 0x50 && // P
                header[2] == 0x4E && // N
                header[3] == 0x47 && // G
                header[4] == 0x0D &&
                header[5] == 0x0A &&
                header[6] == 0x1A &&
                header[7] == 0x0A)
            {
                //Png图片 8字节:89 50 4E 47 0D 0A 1A 0A
                type = ImageType.Png;
            }
            else if (header[0] == 0xFF &&
                    header[1] == 0xD8)
            {
                //Jpg图片 2字节:FF D8
                type = ImageType.Jpg;
            }
            else 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图片 6字节:47 49 46 38 39|37 61
                type = ImageType.Gif;
            }
            else if (header[0] == 0x42 &&   //B
                    header[1] == 0x4D)      //M
            {
                //Bmp图片 2字节:42 4D
                type = ImageType.Bmp;
            }

            //关闭字节流
            stream.Close();

            return type;
        }

  解析到图片格式后,我们就可以根据图片格式选择对应的控件来显示图片了。

PHP+MySQL打造二手物品交易网站:从数据库到部署全解析 在Web开发学习与实战中,PHP与MySQL的组合始终是构建动态网站的高效起点。无论是课程设计、毕业设计,还是企业级信息管理系统的雏形,掌握用户交互、数据存储与前后台联动的核心原理至关重要。以二手物品交易平台为例,它涵盖用户注册登录、商品发布、分类检索、留言互动等典型业务模块,是理解Web全栈开发逻辑的绝佳实践。本文从基础概念出发,解析Apache服务器环境下的项目架构,深入数据库表结构设计、PDO安全预处理、图片上传处理等关键技术点,并给出从本地环境配置到Linux服务器上线的完整部署方案。通过这样一个功 阅读详情

相关推荐

桥梁病害检测数据集实战:YOLO格式解析与YOLOv8模型训练全流程

目标检测是计算机视觉的核心任务之一,旨在识别图像中特定物体的位置与类别。其原理通常基于深度学习模型,通过卷积神经网络提取特征并预测边界框与类别概率。这项技术在工业质检、自动驾驶、安防监控等领域具有极高的技术价值。在基础设施健康监测,特别是桥梁病害识别等应用场景中,目标检测能实现自动化、高效率的表面缺陷排查。本文围绕一个专注于桥梁检测的VOC与YOLO格式数据集展开,详细剖析了其结构、价值及从数据准备到模型训练、评估与部署的完整工程实践流程,为相关领域的算法验证与快速原型开发提供了有力工具。

benben 323

Windows Phone 7的交互革命:Metro设计语言与动态磁贴原理

移动操作系统交互范式演进中,‘动态磁贴’与‘Metro设计语言’代表了一种以信息流为中心、强调低认知负荷的人机交互新路径。其核心原理在于将UI从被动启动入口升级为主动服务代理,并通过严格的视觉物理法则(如间距、动效、色彩系统)约束体验一致性。这种‘约定优于配置’的设计哲学,不仅提升了碎片化场景下的信息获取效率,更深远影响了后续Material Design、iOS Widgets及现代车载HMI等跨平台交互体系。本文基于真实开发实践,解析WP7如何在性能边界与用户体验间达成精密平衡。

unixboy 393

从零开始:使用COLMAP与OpenMVS构建高精度三维Mesh模型

本文为零基础新手提供了使用COLMAP与OpenMVS构建高精度三维Mesh模型的完整实战指南。详细介绍了从环境配置、数据采集黄金法则,到COLMAP稀疏与稠密重建、OpenMVS网格生成与纹理映射的每一步操作,并分享了关键的避坑技巧与参数调优建议,帮助读者从二维照片中成功重建出属于自己的三维模型。

metal的博客 506

缩略语

缩略语 A...AA Auto AnswerAAB All-to-All BroadcastAAL Asynchronous Transfer Mode Adaption LayerAAP Applications Access Point [DEC]AARP AppleTalk Address Resolution ProtocolAAS All-to-All...

weixin_33910759的博客 14万+

Spring Boot Admin 完整教程

SpringBootAdmin是一个用于管理和监控SpringBoot应用的Web工具,提供健康检查、性能指标、日志管理等核心功能。系统由AdminServer(管理服务器)和AdminClient(客户端)组成,通过Actuator端点收集数据。配置需添加Maven/Gradle依赖,通过@EnableAdminServer注解启动服务端,客户端需配置注册信息。支持UI自定义、安全认证(基本/OAuth2)、多种通知方式(邮件/Slack)及与Eureka/Consul等服务发现的集成。最佳实践包括分层监

weixin_51040479的博客 2558

苍穹外卖项目面试总结话术

美食速递这个项目最初是我参与制作的大创项目,是一款为中南学生提供校园外卖送至宿舍服务的软件,包含系统管理后台和小程序端两部分。其中系统管理后台主要提供给食堂内部员工使用,可以对食堂各个窗口、员工、订单、菜品等进行维护管理;小程序端可以在线浏览菜品、添加购物车、下单等,由学生兼职做跑腿送餐上门服务。这是个前后端分离的项目,我主要是负责后端的用户登录、员工管理,菜品管理,订单管理模块的编码实现。

qq_45195447的博客 1万+

Windows Phone 7解析图片格式

在Windows Phone中用于显示图片的是Image控件,不过Image控件目前只支持两种格式的图片,即Png和Jpg。平时我们经常用的图片还有Gif和Bmp两种,对于这两种图片我们无法通过Image来显示。需要用第三方开发的控件来显示,ImageTools是开源社区CodePlex提供的,可以通过http://imagetools.codeplex.com/下载DLL以及源码,通过Image

Working harder, getting stronger! 669

一文搞懂雷达脉冲压缩和匹配滤波器

为了解决传统单频脉冲雷达面临的作用距离和空间分辨力之间的矛盾,脉冲压缩理论被提出。在接收端设计一个和发射信号能够“共轭匹配”的网络来实现脉冲压缩。接收到的回波信号通过匹配滤波器时,滤波器的增益在信号越强的频率点越大;在信号越弱的频率点,增益越小,通过这样的方式使信号在时域更加集中。脉冲压缩技术大致可分为线性调频(LFM)和相位编码。其中LFM信号易于通过硬件或各种技术产生,但是进行匹配滤波后主旁瓣比高达13.2dB,在检测多个目标时,强目标的回波旁瓣可能会把弱小信号覆盖,导致弱小信号的检测受到影响。

FPGA入门到跑路 9937

Windows Phone 解析图片尺寸之png

  前面介绍过Windows Phone 解析图片格式,通过解析图片格式,我们可以根据图片格式使用相关控件展示。在Windows Phone开发中,无论是系统Image控件,还是ImageTools中提供的图片控件,加载图片都是异步过程,这样就使得我们无法立即获得图片的尺寸大小,而必须等图片加载完成后才能获得。然后在开发过程中,有时候我们需要在加载图片完成之前就获取图片的尺寸。同前面解析图片格式的...

weixin_30917213的博客 101

目标检测YOLO实战应用案例100讲-跨模态、多级别融合的RGB-D显著目标检测方法研究(续)

在第二章介绍了本研究的跨模态特征融合方法,第二章对于多级别特征的融合, 使用的是与基线模型baseline相同的方法:相邻级别的特征中,高级特征进行上采 样到与低级特征相同的尺度,再将高级特征通过降维得到与低级特征相同的通道数 量,最后对二者进行特征叠加,如此自顶向下的进行多级别的特征融合。本章主要 介绍本研究在特征层面的另一发现,并基于此发现引出的本文的第二个创新点:多 级别特征的融合方法。另外,在网络最深层,本文设计了一个新的模块来获取大的 感受野,对于大尺度目标能够增加更多语义信息,提升检测效果。 骨

qq_36130719的博客 468

Hyperledger Fabric 网络搭建详解

写在前面:博主也是因为一些原因刚刚入坑区块链,我认为在我们入门新技术的时候,入门总是最困难的部分,只要入门了,后面学习起来就会越来越轻松,在网上找了很多文章,我觉得大多条理不是很清楚。本文章会详细介绍fabric(v1.0)环境部署,以及在搭建过程我遇到一些问题及解决方案,希望可以帮助到你们。 博主环境机器:VMware15 Ubuntu16.04 fabric(v1.0)环境部署一、必备软件安装1.ubuntu环境安装2.Go语言3.Docker安装4. Docker-Compose 安装二、Fa.

林中有神君 1万+

Windows Phone 解析图片尺寸之jpg

  上一篇介绍了Windows Phone 解析图片尺寸之png,本篇介绍一下如何解析jpg图片的尺寸大小,由于jpg图片的格式相对于png要复杂很多,所以首先我们要先清楚的了解jpg图片的数据格式,jpg图片包括SOI和数据两个部分。  SOI,Start of Image,图像开始,标记代码 2字节 固定值0xFFD8。  数据部分分成很多数据段,数据段的一般结构如下。 段数据结构 ...

weixin_30522095的博客 155

笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

10 笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

w0shishabi的博客 1472

Windows Phone 资源图片使用 (1)

1.1 概述 WP7中的图片资源是在代码中使用的外部文件。这些文件作为应用程序的一部分,被编译到应用程序当中。WP7中会用到大量的图片资源文件,如应用程序列表图标、Tile背景、程序启动画面、应用程序的图标、SplashScreenImage、背景图片,主题应用等大量使用场景。 本节我们将讲解如何使用图片资源,如何选择图片资源格式,BuildAction使用“Content”还是“Resour

TRYME1919的专栏 551

CATIA二次开发核心技术:多实体零件自动化拆解与装配生成深度解析(零件转产品)

CATIA二次开发核心技术:多实体零件自动化拆解与装配生成深度解析

KE17RS的博客 2145

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

windows phone (20) Image元素

原文:windows phone (20) Image元素 之前有说道wp目前支持的图片格式为png和jpeg ,我们可以通过设置Source属性设置图片源,下面要说的是Iamge元素的部分属性,这就是Stretch,Opacity【作者:神舟龙】 Stretch属性 image的拉伸行为有此属性决定,此属性是一个枚举成员,有uniform,fill,uniformtofill,none;从...

weixin_34247299的博客 81

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Windows Phone 解析图片尺寸之bmp

  前面介绍了Windows Phone 解析图片尺寸之gif,之前也介绍了jpg和png图片的相关解析。Windows Phone系统支持的图片格式是jpg和png,所以bmp图片的现实同gif图片显示的处理方式类似,同样需要采用第三方类库ImageTools,其中ImageTools的获取在gif图片解析中已经介绍,下面代码给出创建一个显示bmp图片的控件。 View Code ...

weixin_30394633的博客 105

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

windows phone (20) Image元素 from http://www.cnblogs.com/shenzhoulong/archive/2012/04/25/2468951.html...

之前有说道wp目前支持的图片格式为png和jpeg ,我们可以通过设置Source属性设置图片源,下面要说的是Iamge元素的部分属性,这就是Stretch,Opacity【作者:神舟龙】 Stretch属性 image的拉伸行为有此属性决定,此属性是一个枚举成员,有uniform,fill,uniformtofill,none;从网上找了一张图片进行测试 ,是jpg格式的,看看有什...

weixin_30621919的博客 99

C++ QT电话簿实战:从数据库设计到桌面应用部署全流程解析

数据库编程是现代软件开发的核心技能之一,它通过结构化查询语言(SQL)实现对数据的持久化存储与高效管理。其基本原理在于通过客户端与数据库服务器的交互,执行增删改查(CRUD)操作,确保数据的一致性与完整性。掌握数据库技术对于构建数据驱动的应用具有重要价值,尤其在需要管理用户信息、交易记录等场景中至关重要。在桌面应用开发领域,QT框架因其强大的跨平台能力和丰富的模块库,成为连接C++业务逻辑与数据库的理想选择。通过结合SQLite轻量级数据库,开发者可以快速构建出如通讯录、库存管理等单机版数据管理工具。本文将

蓝色妖姬 495

vue-objccn移动端开发指南:Cordova实现iOS/Android应用

vue-objccn是一个基于Vue.js开发的跨平台全栈应用,通过Cordova技术可以快速将Web应用打包为iOS和Android原生应用。本指南将详细介绍如何利用Cordova实现vue-objccn项目的移动端部署,帮助开发者轻松构建跨平台应用。 ## 📱 多平台支持概览 vue-objccn项目通过Cordova框架实现了对主流移动平台的全面支持,包括iOS、Android、Win

gitblog_00798的博客 909

模板驱动型文档自动化:工程化重构内容生产流水线

文档自动化是企业知识交付的核心基础设施,其本质是将非结构化写作升级为可编程、可验证、可追溯的工程实践。基于模板驱动与变量绑定机制,系统通过结构层、内容层、样式层和数据层四维建模,实现文档从‘人工拼贴’到‘逻辑生成’的范式跃迁。技术价值在于保障批量产出的一致性、可审计性与快速响应能力,广泛应用于合同管理、投标文件、合规报告、产品说明书等高频、高规、高协同场景。本文深入解析Sqribble在模板动态性、CSS样式继承、API数据管道及CLI DevOps集成中的落地逻辑,聚焦真实项目中变量语义化定义、状态驱动排

weixin_30718391的博客 292
下一篇: AS3.0自定义滚动条(滚动内容可以为Sprite或MovieClip等)
Zen星尘
博客等级 码龄17年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值