Leooonard / Notes

2 stars 0 forks source link

Exif head #12

Open Leooonard opened 9 years ago

Leooonard commented 9 years ago

JPEG头部包含额外的信息. 起始标识符0xFF 0xD8. 头部包含了许多不同的额外信息, exif是其中的一种. 它以0xFF 0xE1起始, 后面两个字节表示exif头部的长度.

0xFF 0xE1 两个字节 4578 6966 0000 4d4d(或6c6c)
起始标识符 exif头长度 exif四个字母的阿斯科码表示 没有意义 使用大端序(或小端序)

接下去的是具体的信息. 信息的存储采用了一种被称为image file directory的结构. 先按序的声明包含哪些key(具体信息), 每个key包含的数据有多长. key包含orientation, thumbnail image等.

orientation

exif-orientation

遵循图上的规律, 对不同的值进行相应的旋转即可保证图片正向.

实现

blob保存二进制数据, dataview取具体的值.

//case 6,  90° rotate right
ctx.rotate(0.5 * Math.PI);
ctx.translate(0, -height);