在尝试使用CameraUI类拍摄照片时,我遇到了一些Android设备问题。
我的AIR应用仅限肖像autoOrients = false,但出于某种原因,当以纵向拍摄照片时,图像将向右旋转90度返回。
这种情况仅发生在三星S6上,但不适用于HTC M8。
是否有解决此问题的方法,或者这只是Adobe bugbase中的永恒错误之一?
使用ANE是我最好的办法来解决这个问题吗?
答案 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 ;
}
}