javascript - 如何避免 Angular 4 应用程序中的图像旋转

标签 javascript html ios css angular

我有一个 Angular 应用程序,它允许您选择个人资料图片。执行测试时我注意到,当我以纵向模式从 iPhone 拍摄图像并将图像上传到我的应用程序时,它会旋转显示,但是如果我以横向模式拍摄照片,则图像会正确显示。此外,在 Android 设备上执行相同的测试,结果是在纵向模式或横向模式下图像都能正确显示。我的问题是如何避免这种行为,因为我希望图像始终在不旋转的情况下显示。下面是所提到的问题的示例:

enter image description here

所有上传的图片都应该这样显示:

enter image description here

我在服务器上物理检查了从 ios 上传的文件,没有一个是旋转的。问题似乎出在应用程序的可视化上。

我应该怎么做才能让图像始终在我的 Angular 应用程序中不旋转地显示?

我做了一个 stackblitz 来展示这个组件的实现

stackblitz

我很感激有人可以帮助我,并向我解释为什么会出现这种奇怪的行为。

非常感谢!

最佳答案

这里的问题是一些叫做 EXIF 的数据。这是一组与图像一起捕获的额外元数据,其中包含位置、时间、孔径以及方向

图片上传到服务器后如果想正确显示,可以简单地根据exif方向旋转图片,然后剥离exif数据。这样,无论是在理解 EXIF 的浏览器还是不理解 EXIF 的浏览器中,图像始终“正确”显示。 这在这里解释:Fix iOS picture orientation after upload PHP

如果您想在上传之前正确显示图像(例如预览),最好的办法是使用 HTML Canvas ,然后根据图像的方向旋转图像。请参阅此主题以获取更多信息:JS Client-Side Exif Orientation: Rotate and Mirror JPEG Images

关于javascript - 如何避免 Angular 4 应用程序中的图像旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57649822/

相关文章:

javascript - Angular 8 中的 RouteLink 参数

javascript - 只能在 Google Map API v3 上切换标记一次

javascript - D3 折线图出现错误且未绘制

ios - UIButton 的剪辑图像

ios - 在 iOS 应用程序中使用 swift 过滤器检查 list 部分

javascript - 浏览器独立只读?

javascript - 实时计算进入下一步然后返回数字成为我最初设置的数字

html - 它是 Chrome 中 em DIV 的 secret 最小尺寸(宽度/高度)吗?

ios - 在 MKMapView 上动态(交互地)绘制动画

javascript - 如何在点击时获得窗口滚动单元..当页面动画到目标位置的顶部时