关于图片文件旋转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图像基于 基于EXIF方向旋转JPEG图像的node 模块。:它做什么?安装工具使用情况node 模块示例用法信息错误句柄选项变更日志文件许可协议片尾它做什么?这里模块...
JPEG Lossless Rotator是一款免费的图片旋转工具,它的优点在于旋转指定的图片而不会损失图片质量,即无损旋转转自。虽然使用WINDOWS自带的图片浏览器也可以旋转图片,但是使用它旋转后保存的图片质量会有损失,...
修改文件的jpeg文件头部分备注(此备注并非exif信息)。该指令会打开文本编辑器,并在编辑器关闭时将备注信息存入文件。 -cs <文本文件> 导出备注。例如"jhead –cs D:\988.txt D:\A.jpg" -ci <文本文件> 导入备注。...
小巧易用的图片大小批量更改软件Fotosizer,别看它的体积小,功能上非常丰富,能够自定义调节图片大小,添加黑白、负片及深褐色效果,逆时针顺时针旋转图片,修改图片品质,复制JPEG EXIF信息,给图片添加文本或图片...
CSXImage ActiveX控件 用于显示和管理图片,能把图片保存为文件,或拷贝到剪贴板。... 从JPEG文件获取Exif属性; 图片可以以HTTP上载的形式传到远程服务器; 缩放和打印功能; OCX文件免费发行。
·保持下降或EXIF信息的JPEG文件(相机型号/镜头模型/等。等) ·输出水印照片GIF文件格式的JPEG,TIFF,PNG,BMP和。 ·指定水印输出质量保存为JPEG图像时 °角你使用的文字为您的照片水印 ·数字图像中插入,图片...
在Android中使用ImageView显示图片的时候发现图片显示不正,方向偏了或者倒过来了。 解决这个问题很自然想到的... Exif支持的格式如下: 图像 压缩图像文件:JPEG、DCT 非压缩图像文件:TIFF 不支持:JPEG 2000、PNG、
可取得图档的Exif信息 操作容易 树状浏览目录及档案 档案管理 ( 复制 / 搬移 / 删除 / 重新命名 ) 资料夹窗格 / 压缩档窗格 / 缩图窗格 可开启 Unicode 档名 JPEG档案无损旋转 储存档案或另存新档为其他格式 尺寸...
从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是一款功能强大的基于Microsoft IIS环境的图片处理组件,网络上...从Jpeg图片中抽取EXIF和IPTC数据. CMYK-RGB转换 Read/write access to individual pixels of an image.(从图象中对任意象素进行读/写存取。)
轻量级的exif图片元数据解密Exifer是一个读取JPEG / TIFF元数据的小模块。 Exif标签/字段用于将附加信息编码为数码相机拍摄的图像。 exif元信息被组织到图像中的不同图像文件目录(IFD)中。 它包含有用的信息,例如...
保留或删除EXIF信息的jpeg文件(相机型号/的伦泽模型/等等等。) 输出水印的照片为JPEG,TIFF,PNG,BMP和gif文件格式。 指定水印输出的质量保存为JPEG图像时, 角度使用您的照片水印的文字 将背景水印在数字...
从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...
* 支持通过EXIF信息自动旋转图片。 * 支持系统更新检查,且可以关闭。 Honeyview软件安装: 这里我们需要对安装语言进行选择。 Honeyview截图 Honeyview软件卸载: 对于比较难卸载的,在...
我使用 Node.js 和 ...根据 EXIF 元数据中的方向标签旋转 JPEG 图像 从 JPEG 图像中去除 EXIF 元数据 安装 .env 模板 MONGODB_URI= REDIS_URL= MONGO_ROOT_USERNAME= MONGO_ROOT_PASSWORD=<root password for Mo
从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相片管理器现在会根据EXIF相机信息、IPTC数据、ACD数据库信息以及文件属性自动将相片放入方便使用的类别。这样在日后搜索相片时便有许多选项可以使用——您连一张相片也不用...
不知道大家会不会分享一些自己制作的图片,动图到网上,比如高清壁纸、GIF动图、表情包等,然后...6、保留或删除EXIF信息的jpeg文件相机型号/的伦泽模型/等等等。 7、输出水印的照片为JPEG,TIFF,PNG,BMP和gif文件格