android - object-fit:cover 不适用于移动设备上的 ImageCapture.takePhoto
问题描述
我尝试显示object-fit:cover
由ImageCapture API拍摄的照片。它与桌面上的 Chrome 完美配合。但是,该object-fit:cover
样式不适用于所有设备和模拟器的 Android 上的 Chrome。
可以在此处找到此问题的最小示例。
的大小<img id="photoImg" />
固定为 200 * 400 px 以展示object-fit:cover
样式。图像的src
由该方法生成并通过函数ImageCapture.takePhoto()
将 blob 转换为 URL 。URL.createObjectURL()
以下是桌面版 Chrome 的结果,运行良好。
可悲的是,Android(Sony Xperia 1)上的 Chrome 的以下结果具有失真的图像比例。似乎object-fit:cover
不起作用。
我已经使用远程调试 Android 设备来确认其他object-fit
值,例如object-fit:contain
按预期工作。
我怀疑Blob
fromImageCapture
可能会错过一些关键信息,以便正确计算图像比率,但我不知道如何进一步调查。
如何object-fit:cover
使用 Chrome 在移动设备上进行工作?
解决方案
经过调查,我找到了根本原因:一个 Chromium bug。它已在版本 89 中修复并发布。因此,此问题不再有效。
推荐阅读
- python - 如何向 Django 国家小部件添加一个类
- php - 为什么相同的 http 请求在浏览器中有效,但从我的 Android 应用程序发送时失败?
- c++ - 当抽象出一个类时,我的 OpenGL 顶点数组不再起作用
- python - 我们可以设置可以在会话中修改的模块级属性吗
- r - 访问不存在的列表元素时如何强制出错或“NULL”?
- java - Firebase Admin SDK Messaging 如何处理 canonical_ids?
- outlook - 在 MS Outlook 插件中设置收件人
- android - API 28 (Pie) 设备上的 Android 应用程序在尝试连接到 AWS 上的 Parse Server 时返回 i/o 异常
- php - Symfony 和 API 平台 - 通过 slug 或 userToken 或任何其他不同于 ID 的字段检索数据
- llvm - LLVM:如何使用 Compiler-RT 的调试符号进行编译