css - CSS object-fit:cover 不适用于 EXIF 方向的 JPEG img 更多 1
问题描述
无法理解我的 Angular 应用程序有什么问题。我正在为我的 Sumsung Galaxy 照片制作一个小画廊。为了有一个漂亮的设计,我使用“object-fit:cover”css 属性。它适用于 EXIF“方向”属性等于 1 的图像。不适用于“方向”属性的其他值(如 5 或 6)。它拉伸了我的图像。我也尝试使用“背景尺寸:封面”通过“背景图像”属性加载我的图像的解决方案。情况完全相同:“方向等于 1”有效,“另一个方向”无效。我的scss代码是这样的:
div{
height: 150px;
width: 150 px;
img{
height: 100%;
width: 100%;
object-fit: cover;
}
}
有谁知道我的错误在哪里。非常感谢。
解决方案
我不知道你的错误在哪里,但这是我绕过问题的方法:加载图像并将其复制到一个<canvas>
元素,因此从其 EXIF 数据中“清除”。然后,您应该能够将所需的样式应用于画布。
实现这一点的基本 JavaScript 将是:
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
document.body.append(canvas);
const image = new Image();
image.src = 'path/to/your/image.jpg';
image.onload = () => {
canvas.width = image.naturalWidth;
canvas.height = image.naturalHeight;
context.drawImage(image, 0, 0);
};
推荐阅读
- django - 如何在模板中调用模型方法
- google-cloud-dataflow - 如何在预定义模板中禁用公共 IP 以启动数据流作业
- php - 是否可以从 html 表单操作中调用 codeigniter 控制器功能
- php - 使用存储过程将值从控制器传递到模型 CodeIginter
- java - 嵌套异常是 java.util.concurrent.ExecutionException
- java - usr/bin/java 中的 Java 丢失
- android - 除了Android中的Fabric仪表板之外,Fabric还将Log写入android logcat
- c# - 无法访问数组的元素
- javascript - 时区的Angular4日期格式问题
- javascript - 分页问题使数据表无法工作