【问题标题】:Variable seems to not get set on mobile devices变量似乎没有在移动设备上设置
【发布时间】:2017-03-22 10:13:26
【问题描述】:

我正在读取图像文件并将其重新缩放以将其发送到服务器。为了正确重新缩放它,我需要更改方向,因为有些照片是使用移动设备相机拍摄的。为了进行这种轮换,我使用exif.js 库执行了以下操作:

EXIF.getData(img, function() {    
    alert(this.exifdata.Orientation);
    orientation = this.exifdata.Orientation;
    alert(orientation);
}

如果this.exif.data.Orientation 是例如 6,则需要以下输出:“6”、“6”。

当通过我的计算机上传文件时,此方法有效。但是,当从移动设备相机上传时,无论orientation 之前的值是多少,输出都是“6”然后是“0”。

为什么会这样?

注意:我只在一个线程上运行。因此,在执行这些行期间,无法从外部设置变量。

【问题讨论】:

  • orientation 声明在哪里?它是一个全局变量还是您在该匿名函数中隐含地声明它?也许后者可能是问题所在。
  • 如果在任一警报语句之前设置orientation 会发生什么?

标签: javascript android ios html exif


【解决方案1】:

全局变量window.orientation 表示移动设备上屏幕的方向,它是不可变的。更改变量的名称 - 或将 var、let 或 const 放在变量之前以在本地声明它 - 将解决您的问题。

【讨论】:

    【解决方案2】:

    Exif 支持并不是完全通用的。您是否首先验证了相关移动设备在 exif 数据中的正确烘焙?

    另一个方向是屏幕的当前旋转,无论您正在查看的图像如何,它都是相同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多