復制代碼 代碼如下:
//獲取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);
}
}
復制代碼 代碼如下:
if(file_item.exifArray.length>0) { //寫入exif信息
var desData:ByteArray = new ByteArray();
desData.writeBytes(oldData,0,2);//0xffd8
desData.writeByte(0xff);
desData.writeByte(0xe1);
desData.writeBytes(file_item.exifArray,0,file_item.exifArray.bytesAvailable);
desData.writeBytes(oldData,2,oldData.bytesAvailable);
desData.position = 0;
this.uploadFileTest(desData,file_item);
} else {
this.uploadFileTest(e.target.ba,file_item);
}
(編輯:武林網)
|
新聞熱點
疑難解答