从iOS 8上的Camera Roll加载图像中读取EXIF方向标记

时间:2014-12-17 15:14:13

标签: ios actionscript-3 air exif camera-roll

我正在使用Adobe Air开发iOS8 iPhone应用程序,我想从装载CameraRoll的图像中读取image orientation的EXIF数据。

我正在使用此AS3 EXIF库:https://github.com/bashi/exif-as3 提供的示例适用于通过URLRequest加载的图像,但不适用于加载了CameraRoll的图像。 (EXIF的跟踪= null

这是我的代码:

import jp.shichiseki.exif.*;

var loaderCameraRoll:ExifLoader 
var deviceCameraRoll:CameraRoll

function loadImageFromCameraRoll(e:Event=null):void {
deviceCameraRoll = new CameraRoll();
deviceCameraRoll.addEventListener(MediaEvent.SELECT, onSelectCameraRoll);
deviceCameraRoll.browseForImage();
}

function removeBrowseListeners():void {
deviceCameraRoll.removeEventListener(MediaEvent.SELECT, onSelectCameraRoll);
}

function onSelectCameraRoll(event:MediaEvent):void {
var promise:MediaPromise = event.data as MediaPromise;
loaderCameraRoll = new ExifLoader() 
loaderCameraRoll.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadedCameraRoll);
loaderCameraRoll.loadFilePromise(promise);      
}

function onLoadedCameraRoll(event:Event):void {
trace(loaderCameraRoll.exif.ifds.primary)
}

如何从加载CameraRoll的图像中获取EXIF 方向值?

2 个答案:

答案 0 :(得分:1)

尝试使用Native Extenson这是一个很好的选择:

https://github.com/digicrafts/ANE-ImagePicker

if (AirImagePicker.getInstance().isCameraAvailable())
{
    AirImagePicker.getInstance().displayCamera(function(status:String, ...mediaArgs):void {
        // Do something with the Media information returned
    });
}

// Pick an image from the gallery
if (AirImagePicker.getInstance().isImagePickerAvailable())
{
    AirImagePicker.getInstance().displayImagePicker(function(status:String, ...mediaArgs):void {
        // Do something with the Media information returned
    });
}

答案 1 :(得分:0)

杰伊,我发现了一篇完美解决问题的文章,适用于iOS和Android。

http://blogs.adobe.com/cantrell/archives/2011/10/parsing-exif-data-from-images-on-mobile-devices.html

同时,我想问你一个关于在iOS设备上从Air上传文件的问题。您是否尝试将图像文件上传到某个地方?如果您这样做,您使用的是哪个版本的iOS以及哪个版本的Air SDK?您是否在xxx-app.xml文件中进行了一些配置?

我在

www.adobe.com/devnet/air/articles/uploading-images-media-promise.html 
中尝试了解决方案,但 File.upload(URLRequest) 在iOS8上无效。 File.upload 甚至没有向服务器端发送任何请求。 似乎Air SDK for iOS因某种原因无法发送http请求

您可以转到以下链接查看我的问题。

ActionScript's File.upload does not work on Air SDK for iOS devices

我的示例代码已上传到github。

github.com/bluewindjava8/actionscript_file_upload_for_ios
如果你有空的话,请你帮我查一下。如果可以的话,请你把你的密码发给我吗?非常感谢你。