`

关于图片文件旋转JPEG与EXIF信息

    博客分类:
  • Java
阅读更多
关于图片文件旋转JPEG与EXIF信息

比如某相机拍摄出来的相片,文件分辨率比如宽度7360像素,高度4912像素

十进制表示为 DEC : 7360 * 4912
十六进制则为 HEX : 1CC0 * 1330

默认情况下,会在00000030:07标志位(不同设备或程序生成的图片的标志位会有所不同,由EXIF内容而定)上存放01值表示原始文件的位置,无论这张图是横着拍的还是坚着拍的,初始值为01
那么图片,在Windows 10操作系统下,通过操作系统自带的“相片”程序进行旋转时,仅仅对此标志位进行改变,而图片的内容不会做任何改变,包括旋转后的宽度与高度也不会做改变,包括JPEG和EXIF中的宽度与高度信息。

1、向右旋转90度,标志位为06
2、再向右旋转90度,即旋转了180度,标志位为03
3、再向右旋转90度,即旋转了270度,标志位为08
4、再向右旋转90度,即旋转了360度,回到原图,标志位还原为01

然而,在Windows 10进行旋转的图片,如果在Windows XP或Windows 7上面通过“相片”进行查看仍然显示为未旋转前的图片,因为不识别这个标志位。
资源管理器在显示分辨率那一栏中也自然是无法识别,低版本的程序无法识别高版本的标志位导致的问题。

于是,在处理旋转过后的图片,通过JDK 8.0版本去读取javax.imageio.ImageIO.read(new File(fileName)).getWidth/getHeight宽度和高度时,也是无法获知到底是不是旋转过的。

包括其他比如HypeSnap 5.6.0版本的一些旧程序,在打开时都会由于不支持这种方式而导致仍是未旋转的问题。


但是,如果是在Windows XP或Windows 7当中,对图片文件进行旋转时,文件的内容做了全面的变化。旋转后的宽度与高度也会改变并保存到EXIF中,图片内容的改变。这样旋转后的文件在其他操作系统上进行打开时都是正确的旋转后的结果。


解法:比如新版本的HypeSnap 8.16.17版本已经可以支持这个特殊的标志位,能够正确识别并展现。

试过JDK 8.0/9.0/10.0均无法识别,目前最新版本的OpenJDK 13.0版本也没能识别出来旋转后的分辨率。

关于JPEG/EXIF文件格式说明
https://www.media.mit.edu/pia/Research/deepview/exif.html
Description of Exif file format

0x0112 Orientation unsigned short 1 The orientation of the camera relative to the scene, when the image was captured. The start point of stored data is, '1' means upper left, '3' lower right, '6' upper right, '8' lower left, '9' undefined.

看规范文件的时间:
rev. 1.1 Dec.19,1999
rev. 1.0 May.28,1999
这是大家都偷懒么?
分享到:
评论

相关推荐

    jpeg-autorotate, 在EXIF方向,一个 node 模块旋转JPEG图像基于.zip

    jpeg-autorotate, 在EXIF方向,一个 node 模块旋转JPEG图像基于 基于EXIF方向旋转JPEG图像的node 模块。:它做什么?安装工具使用情况node 模块示例用法信息错误句柄选项变更日志文件许可协议片尾它做什么?这里模块...

    图片无损旋转工具JPEG Lossless Rotator中文版.rar

    JPEG Lossless Rotator是一款免费的图片旋转工具,它的优点在于旋转指定的图片而不会损失图片质量,即无损旋转转自。虽然使用WINDOWS自带的图片浏览器也可以旋转图片,但是使用它旋转后保存的图片质量会有损失,...

    一个直接用命令查看修改删除图片属性Exif信息的文件

    修改文件的jpeg文件头部分备注(此备注并非exif信息)。该指令会打开文本编辑器,并在编辑器关闭时将备注信息存入文件。 -cs <文本文件> 导出备注。例如"jhead –cs D:\988.txt D:\A.jpg" -ci <文本文件> 导入备注。...

    Fotosizer v2.9.0专业版(免激活免注册码).rar

    小巧易用的图片大小批量更改软件Fotosizer,别看它的体积小,功能上非常丰富,能够自定义调节图片大小,添加黑白、负片及深褐色效果,逆时针顺时针旋转图片,修改图片品质,复制JPEG EXIF信息,给图片添加文本或图片...

    CSXImage ActiveX 控件

    CSXImage ActiveX控件 用于显示和管理图片,能把图片保存为文件,或拷贝到剪贴板。... 从JPEG文件获取Exif属性; 图片可以以HTTP上载的形式传到远程服务器; 缩放和打印功能; OCX文件免费发行。

    批量添加水印(TSRWatermarkImageSoftware) v2.1.32绿色版.rar

    ·保持下降或EXIF信息的JPEG文件(相机型号/镜头模型/等。等) ·输出水印照片GIF文件格式的JPEG,TIFF,PNG,BMP和。 ·指定水印输出质量保存为JPEG图像时 °角你使用的文字为您的照片水印 ·数字图像中插入,图片...

    Android图片处理:识别图像方向并显示实例教程

    在Android中使用ImageView显示图片的时候发现图片显示不正,方向偏了或者倒过来了。 解决这个问题很自然想到的... Exif支持的格式如下: 图像 压缩图像文件:JPEG、DCT 非压缩图像文件:TIFF 不支持:JPEG 2000、PNG、

    kuView(快速看图删除重复图片) v1.7

    可取得图档的Exif信息 操作容易 树状浏览目录及档案 档案管理 ( 复制 / 搬移 / 删除 / 重新命名 ) 资料夹窗格 / 压缩档窗格 / 缩图窗格 可开启 Unicode 档名 JPEG档案无损旋转 储存档案或另存新档为其他格式 尺寸...

    AspJpeg动态服务器组件v2·0注册版

     从Jpeg图片中抽取EXIF 和 IPTC数据.  CMYK-RGB转换  Read/write access to individual pixels of an image. (从图象中对任意象素进行读/写存取。)  3、AspJpeg系统需求  Windows 95/98/NT/2000/XP/2003, and...

    AspJpeg v2.4.0.1.zip

    AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,网络上...从Jpeg图片中抽取EXIF和IPTC数据. CMYK-RGB转换 Read/write access to individual pixels of an image.(从图象中对任意象素进行读/写存取。)

    exifer:轻量级的Exif元数据解密

    轻量级的exif图片元数据解密Exifer是一个读取JPEG / TIFF元数据的小模块。 Exif标签/字段用于将附加信息编码为数码相机拍摄的图像。 exif元信息被组织到图像中的不同图像文件目录(IFD)中。 它包含有用的信息,例如...

    TSR Watermark Image v3.6.0.9.zip

    保留或删除EXIF信息的jpeg文件(相机型号/的伦泽模型/等等等。) 输出水印的照片为JPEG,TIFF,PNG,BMP和gif文件格式。 指定水印输出的质量保存为JPEG图像时, 角度使用您的照片水印的文字 将背景水印在数字...

    aspjpeg+aspjpeg组件高级使用方法

    从Jpeg图片中抽取EXIF 和 IPTC数据. CMYK-RGB转换 Read/write access to individual pixels of an image. (从图象中对任意象素进行读/写存取。) 3、AspJpeg系统需求 Windows 95/98/NT/2000/XP/2003, and IIS 4.0...

    Honeyview 漫画阅读器 v5.30.zip

    * 支持通过EXIF信息自动旋转图片。 * 支持系统更新检查,且可以关闭。 Honeyview软件安装:    这里我们需要对安装语言进行选择。   Honeyview截图   Honeyview软件卸载: 对于比较难卸载的,在...

    simpleimage:一个使用 Node.js + Express + MongoDB + Redis 实现的简单图片托管服务

    我使用 Node.js 和 ...根据 EXIF 元数据中的方向标签旋转 JPEG 图像 从 JPEG 图像中去除 EXIF 元数据 安装 .env 模板 MONGODB_URI= REDIS_URL= MONGO_ROOT_USERNAME= MONGO_ROOT_PASSWORD=<root password for Mo

    aspjpeg的下载和注册码

     从Jpeg图片中抽取EXIF 和 IPTC数据.  CMYK-RGB转换  Read/write access to individual pixels of an image. (从图象中对任意象素进行读/写存取。)  3、AspJpeg系统需求  Windows 95/98/NT/2000/XP/2003, and...

    ACDSee 10.0 中文版

    从相机或存储设备“获取相片”时,ACDSee相片管理器现在会根据EXIF相机信息、IPTC数据、ACD数据库信息以及文件属性自动将相片放入方便使用的类别。这样在日后搜索相片时便有许多选项可以使用——您连一张相片也不用...

    TSR Watermark Image Pro v3.7.2.2 专业的图片半透明水印添加工具.rar

    不知道大家会不会分享一些自己制作的图片,动图到网上,比如高清壁纸、GIF动图、表情包等,然后...6、保留或删除EXIF信息的jpeg文件相机型号/的伦泽模型/等等等。 7、输出水印的照片为JPEG,TIFF,PNG,BMP和gif文件格

Global site tag (gtag.js) - Google Analytics