这篇文章的目的是简略的描述怎么在Android上将XMP信息写入JPEG文件,比如将图像的深度信息,全景图信息,连拍信息写入JPEG,Google Photos可以对一些特殊类型进行识别

Adobe XMP

关于Adobe XMP的资料网上可以说是非常少,但是它已经是非常古老的技术,并且具有比较广泛的应用.XMP技术用于在原文件上附加信息,比如将文件的修改日期,修改人,创建人,以及一些描述信息写入文件本身.这是一个比较简单的工作,但是需要一套通用的标准来规范化,Adobe XMP就是这样一套标准,它描述了针对某一种文件类型,比如JPEG图片,我们该以怎样的形式把附加信息写入JPEG文件,定义一套通用的描述符,其他人可以使用通用的描述符查询对应的信息.

XMP的附加信息使用XML描述,基本上就是将一个XML写入到目标文件,通用的描述符就是XMP规范应用的一套命名空间,命名空间下定义了很多的属性

JPEG

JPEG网上有比较多的参考资料,针对我们的目的,这里主要贴一下如果我们用二进制显示一张JPEG,怎么去解读它,编解码不是我们所关心的.

先贴一张二进制的JPEG图片

首先是 FF D8作为文件的第1个和第2个字节,这个在JPEG中有特殊意义,SOI(Start Of Image)
后面跟着 FF E0 也是特殊字符,表示APP0,用于描述缩略图等的信息
除了 FF E0, FF E1… FF EF都是特殊字符,表示App1到App15,可以用来描述附加信息.我们的XMP就可以保存在 App1-App15任意一个中.

JPEG相关的博客和资料:

  • JPEG文件编/解码详解
  • JPEG图像编码标准
  • JPEG文件中的EXIF

Android JPEG

Android通过导入包实现对JPEG的Exif信息和XMP进行处理

Android Project :https://github.com/HJCYFY/Android-XMPDemo

其他资料:https://download.csdn.net/download/huajun998/10595526

Android Adobe XMP与JPEG相关推荐

  1. Android Adobe Reader 任意代码执行分析(附POC)

    livers · 2014/04/18 14:05 0x00 描述 前几天老外在fd还有exploit-db上,公布了Adobe Reader任意代码执行的漏洞. 漏洞编号: CVE: 2014-05 ...

  2. Adobe XMP SDK编译

    XMP(Extensible Metadata Platform)是Adobe公司提出的关于元数据的创建,处理和交换的一套标准.在制作和管理文档或图像时,如果在相关文件中包含有元数据(如标题.摘要.作 ...

  3. php xmp,在jpeg中编写XMP元数据(使用PHP) – 使用单个或多个rdf:描述块

    我试图修改PHP_JPEG_Metadata_Toolkit中的代码,以便我可以使用PHP正确读取和写入jpeg文件的XMP数据.目前,jpeg文件(由Toolkit保存时)会出现Adobe Phot ...

  4. android adobe pdf阅读器,Adobe发布Android手机专用PDF阅读程序

    北京时间5月25日消息,据国外媒体报道,谷歌年度I/O会议上周有消息透露,Adobe已发布Android手机专用的PDF阅读程序. 使用该程序,用户可快速打开互联网下载的或电子邮件附件中的PDF文件. ...

  5. Android使用GPU加速JPEG图片解码(Opencl)

    转载请标明出处:https://blog.csdn.net/u013752202/article/details/92794209 1.创建opencl kernel (1)创建kerenl并编译sh ...

  6. flash插件Android,Adobe Flash Player

    一款非常棒的支持手机播放flash格式文件的软件,Adobe Flash Player 是目前非常流行的多媒体播放器,在很多用户群体收到广泛使用,甚至是专属播放器,随着网络速度与品质的提升,越来越多的 ...

  7. [Android] Adobe Photoshop Express 手机上用的挺好的作图软件

    [推荐阅读]微服务还能火多久?>>> <Adobe Photoshop Express>是一款照片编辑和拼贴画制作软件工具,可以在移动设备上进行快速的编辑.拥有 60 多 ...

  8. Adobe XMP SDK项目应用(续2)

    今日我想给给图像的exif属性里面增加一个SoftWare属性,毋庸置疑,最终是失败而告终.在SDk上面纠缠了半日,直奔核心代码而去,最终无功而返.问题的症结其实跟前几日差不多,修改xmp信息可以,但 ...

  9. Adobe XMP SDK项目应用(续1)

    XMP-Tool-SDK功能确实非常完备,但是要想应用于实际软件产品,踩坑不少.近日就遇到将GPS信息写入exif扩展属性项,始终写入不进去.虽然前期项目对这个库已经做过深入学习,但是经过这次的项目再 ...

最新文章

  1. python人工智能计算器_招募:基于python的召唤师全时段全技能(含均值AI)计算器全程测试...
  2. 自动解析复杂类的属性 实现归档或者进行序列化 反序列话的时候为每一个属性添加序列化方法的繁琐...
  3. 2.15 Python 中的广播-深度学习-Stanford吴恩达教授
  4. mac下查看tensorboard中的graph
  5. lesson2-python3数据类型
  6. Android震动vibrator系统开发全过程
  7. PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0...
  8. android内存及内存溢出分析
  9. ElasticSearch 中的中文分词器该怎么玩?_03
  10. Magento 添加 google font Adding a google fonts into Magento
  11. 数据库原理及应用(索引为什么快,数据在磁盘上如何存储)
  12. C++ ---------------- 成员函数指针揭秘
  13. NYOJ599 - 奋斗的小蜗牛
  14. java 读取txt乱码_java 逐行读取txt文本如何解决中文乱码
  15. 微服务Eureka使用详解
  16. C++ #include头文件随想
  17. 自定义Kettle数据库插件 1
  18. 关于拉格朗日对偶问题中对偶性的理解 (很有趣)
  19. 底量超顶量超级大黑马指标源码_通达信绝密三代指标,秒杀一切妖股指标公式源码...
  20. C++证明哥德巴赫猜想

热门文章

  1. 京东云mysql 外网访问_干货|上云了,如何保障云数据库的高可用?
  2. 正则匹配中文姓名包括少数名字中间的·
  3. 麒麟操作系统离线安装nginx
  4. 【微信小程序】UNI仿驾考宝典答题进度条的一种实现方式
  5. 码神之路博客部署教程【完整版】基于Linux的Docker部署教程非常详细
  6. LQBv14-Python:啤酒和饮料
  7. android studio 不动,解决Android Studio“building project卡住不动”的问题
  8. Specifying and Modelling Secure Channels in Strand Spaces
  9. wallpaper代码_五行Python代码自动换你的电脑桌面壁纸(内附源码和exe)
  10. php7.4 安装xdebug3.1.3扩展