Adobe AIR CameraUI照片方向

时间:2016-02-26 16:40:51

标签: android actionscript-3 air

在尝试使用CameraUI类拍摄照片时,我遇到了一些Android设备问题。

我的AIR应用仅限肖像autoOrients = false,但出于某种原因,当以纵向拍摄照片时,图像将向右旋转90度返回。

这种情况仅发生在三星S6上,但不适用于HTC M8。

是否有解决此问题的方法,或者这只是Adobe bugbase中的永恒错误之一?

使用ANE是我最好的办法来解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

虽然这很烦人,但它实际上是预期的功能。我使用描述here的ExifReader类来确定方向,然后在将文件保存到磁盘之前将其旋转到正确的方向。

答案 1 :(得分:1)

机器人相机图像内置了GPS位置,方向和更多信息Exchangeable Image File (Exif)等信息。 捕获图像时,它会将这些信息保存在jpg文件中,但图像可能会在驱动器上以意外方向保存。

所以,这个解决方案:

1-将Exif编码器库添加到您的项目中,如下所示:      https://github.com/cantrell/ExifExample 2-使用类似此功能的内容控制加载图像字节后的图像方向

       /**1: normal<br>
        3 rotated 180 degrees (upside down)<br>
        6: rotated 90 degrees CW<br>
        8: rotated 90 degrees CCW<br>
        9: unknown<br>
        */
    public static function getOrientation(ImageBytes:ByteArray):uint
    {
        var exif:ExifInfo = new ExifInfo(ImageBytes);
        if(exif.ifds != null)
        {
            var ifd:IFD = exif.ifds.primary ;
            var str:String = "";
            for (var entry:String in ifd) {
                if(entry == "Orientation"){
                    str = ifd[entry];
                    break;
                }
            }
            return uint(str);
        }
        else
        {
            return 9 ;
        }
    }