3 回答
TA贡献1757条经验 获得超7个赞
为了适当的下采样,以减少混叠的方式,图像必须通过低通滤波(即模糊!)进行频带限制。
该函数imagecopyresampled
似乎不会执行这种模糊(而是进行插值,仅适用于上采样)。您可以使用函数 实现模糊效果imageconvolution
,所有系数都等于1
,并应用两遍或三遍。只有这样你才能使用imagecopyresampled
.
你会认为我疯了,因为据说图像太模糊了,但我敢打赌,你的客户所说的模糊实际上是别名。
TA贡献1862条经验 获得超7个赞
这主要是由于视网膜显示器的高分辨率。
CSS 像素是浏览器使用的抽象单位。CSS 像素是独立于设备的像素。它们将自己重新调整为呈现它们的屏幕的像素密度。
如果我们有以下代码:
<div style=”width:250px; height:400px”></div>
上面的组件在标准显示器中看起来是 250 像素 x 400 像素,而在 Retina 显示器中是 500 像素 x 800 像素。
在这种情况下,您有两种选择 1. 您始终可以使用 2x 大小的图像并使用 css 样式或设置 img 宽度和高度显示为 50% 2.更好的方法:假设您想显示 250px x 400px 的图像,有一个在服务器中大小为 500 像素 x 800 像素的备用图像,并在网页提供给 Retina 显示器时呈现它们。
例如第二个选项的代码
/* low resolution display */
.image {
background-image: url(/pathTo/lowResImg.png);
background-size: 250px 400px;
}
/* for retina display */
@media only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2/1),
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min-device-pixel-ratio: 2) {
.image {
background: url(/pathTo/highResImage.png) no-repeat;
background-size: 250px 400px;
}
}
希望这可以帮助。
- 3 回答
- 0 关注
- 177 浏览
添加回答
举报