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

随心笔谈2年前发布 admin
205 0 0

文章摘要

这篇文章介绍了如何从网页中提取特定的EXIF信息。具体步骤如下: 1. 创建一个ByteArray对象`tempData`,并将其写入目标像素数据`e.target.data`的所有内容。 2. 读取第四个字节,判断其值是否为0xE1或0xE0: - 如果是0xE1,表示存在EXIF信息,读取长度并将其写入`exifArray`。 - 如果是0xE0,表示为零数据块,需要跳过,并继续读取可能的EXIF信息。 3. 文章重点在于处理不同类型的EXIF块,并通过条件判断实现信息提取。 总结:文章详细阐述了从网页中提取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);

}

}

© 版权声明

相关文章