javascript - 变换缩放后控制图像质量

标签 javascript css rendering

例如:

  • 有一张 1000x1000 的图片
  • 我给它添加样式 width:10px
  • 我添加了将其缩放 100 倍的变换样式:transform: scale(100, 100)
  • 最后图片大小变成1000px。

问题:

  • 我预计图像会变得模糊,因为它从 10 像素缩放到 100 倍。但事实并非如此,图像是全分辨率的。

有什么方法可以控制质量吗?我尝试将 scale 应用到父元素、子元素本身,但无论我做什么 - 图像都会呈现实际大小。

JSFiddle https://jsfiddle.net/dpfmp4hz/

为什么我需要这个:

  • 我需要运行从 4000x4000 图像到 600x600 的缩放动画,并且缩小会导致严重延迟。有趣的是,从 600x600 缩放到 4000x4000 非常平滑,因为我仅在转换完成后才应用 4000x4000 尺寸。

我真的不想用canvas...

感谢您的帮助!

最佳答案

我创建了一个从 4000px 减少到 600px 的 fiddle ,我没有看到你描述的使用以下 css 的任何滞后:

img {
  width: 4000px;
  height: auto;
}
.parent {
  transform-origin: 0 0;
  transition: all 1s ease-in-out;
  display: inline-block;
}
.parent:hover {
  transform: scale(.15, .15);
}

https://jsfiddle.net/p5yL6fwo/1/

关于您的问题,还有什么我没有看到的吗?您是否正在使用可能难以重新绘制此类图像过渡的设备/计算机?

这是相同的,但向上转换,再次没有滞后: https://jsfiddle.net/he12r8g5/

关于javascript - 变换缩放后控制图像质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47655262/

相关文章:

javascript - 基于用户选择的 ReactJS 渲染组件

javascript - Jquery UI slider 旋钮消失

CSS3 多个背景在 IE 中导致 404

three.js - 如何将边缘渲染为圆柱体?

php - 为什么 PHP 一次发送所有内容?

javascript - jquery中如何在函数内调用函数

html - 宽位置 :fixed element won't stay inside scrollable container

css - css 可见溢出内容如何具有非透明背景以便隐藏下面的内容?

javascript - 根据选定的输入数字迭代 v-for

algorithm - 如何防止 overdraw ?