正文

flex压缩图片exif信息(作者/相机)丢失问题解决(fbx模型压缩)一看就会

文章摘要

文章主要介绍了如何从网页元素中获取特定的EXIF信息。通过读取网页元素的原始数据(`e.target.data`),提取第四个字节(`exif`),判断其值是否为`0xFFE1`。如果是,则读取后续的EXIF数据并将其写入`file_item.exifArray`。如果`exif`值为`0xE0`,则跳过后续的`0xFF`和`0xE1`数据段,继续处理后续的EXIF信息。文章重点围绕EXIF信息的提取和处理逻辑进行描述。

//获取0xFFE1 app1也就是exif信息

var tempData:ByteArray=new ByteArray();

//这里的e.target.data是图片的原始byteArray

tempData.writeBytes(e.target.data,0,e.target.data.bytesAvailable);

tempData.position=3; //读取第四个字节

var exif:Number=tempData.readUnsignedByte();

if(exif==0xE1) { //看这个字节是不是0xE1

this.Debug(“有exif信息”);

//读一个长度

var exifLength:Number=tempData.readUnsignedShort();

file_item.exifArray.writeBytes(tempData,tempData.position-2,exifLength); //如果是,将exif信息读入一个文件对象

} else if(exif==0xE0) { //是e0,那么跳过这个frame,看下边

tempData.position=4;

var e0Length:Number=tempData.readUnsignedShort();

tempData.position=4+e0Length;//跳过e0

tempData.position +=1;//跳过0xff

var isEx:Number=tempData.readUnsignedByte();

if(isEx==0xE1) {

var len:Number=tempData.readUnsignedShort();

file_item.exifArray.writeBytes(tempData,tempData.position-2,len);

}

}