Javascript 移动设备上似乎没有设置变量
我正在读取一个图像文件并重新缩放它以将其发送到服务器。为了正确地重新缩放它,我需要改变方向,因为有些照片是用移动设备相机拍摄的。为了进行此旋转,我使用库执行了以下操作: 例如,如果Javascript 移动设备上似乎没有设置变量,javascript,android,ios,html,exif,Javascript,Android,Ios,Html,Exif,我正在读取一个图像文件并重新缩放它以将其发送到服务器。为了正确地重新缩放它,我需要改变方向,因为有些照片是用移动设备相机拍摄的。为了进行此旋转,我使用库执行了以下操作: 例如,如果this.exif.data.Orientation为6,则将设计以下输出:“6”、“6” 当文件通过我的电脑上传时,这项功能就起作用了。但是,当从移动设备摄像头上传时,输出为“6”,然后是“0”,无论之前的orientation值是多少 为什么会发生这种情况 注意:我只在一个线程上运行。因此,在执行这些行时,无法在外
this.exif.data.Orientation
为6,则将设计以下输出:“6”、“6”
当文件通过我的电脑上传时,这项功能就起作用了。但是,当从移动设备摄像头上传时,输出为“6”,然后是“0”,无论之前的orientation
值是多少
为什么会发生这种情况
注意:我只在一个线程上运行。因此,在执行这些行时,无法在外部设置变量。全局变量
窗口。方向
表示移动设备上屏幕的方向,它是不可变的。更改变量的名称-或将var
、let
或const
放在变量前面以在本地声明它-将解决您的问题。Exif支持并非完全通用。您是否首先验证了所涉及的移动设备是否正确烘焙exif数据
另一个方向是屏幕的当前旋转,无论您看到的是什么图像,它都是相同的。在哪里声明了
方向?它是一个全局变量,还是在匿名函数中隐式声明它?可能是后面的问题。如果在任一警报语句之前设置方向
,会发生什么情况?
EXIF.getData(img, function() {
alert(this.exifdata.Orientation);
orientation = this.exifdata.Orientation;
alert(orientation);
}