Microsoft Edge Image Scaling

时间:2015-08-14 00:27:37

标签: css css3 microsoft-edge

如何为MS Edge使用bicubic制作图像缩放?是否有一些可以改变行为的CSS或类似物。

请参阅此页:http://duttongarage.com/Race-Workshop~317

右边有两个带纹理背景的图像,你可以很清楚地看到奇怪的文物

Chrome v Edge Moire pattern

左侧是Chrome,右侧是MS Edge。正如你所看到的,调整大小是最近邻或线性的,而不是双三次,有一些奇怪的莫尔效应。

另一个更典型的例子: Edge v Crhome Pixelation

Microsoft Edge位于顶部,Chrome位于底部。请注意像素化,就像我对过去十年的浏览器所期望的那样。

1 个答案:

答案 0 :(得分:2)

很抱歉愚蠢的答案,但是,正如我所看到的,Edge不支持任何图像渲染选项,所以,请尝试使用jQuery来调整图片大小。

例如,您可以使用this answer中的解决方案: 只需在您的图片下创建<canvas id="canvas"></canvas>,然后看:

screenshot

var canvas = document.getElementById("canvas");

var ctx = canvas.getContext("2d");

img = new Image();
img.onload = function () {

    canvas.height = canvas.width * (img.height / img.width);


    /// step 1
    var oc = document.createElement('canvas'),
        octx = oc.getContext('2d');

    oc.width = img.width * 0.5;
    oc.height = img.height * 0.5;
    octx.drawImage(img, 0, 0, oc.width, oc.height);

    /// step 2
    octx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5);

    ctx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5,
    0, 0, canvas.width, canvas.height);
}
img.src = "http://duttongarage.com/img/2167/824";

您可以使用数学轻松调整oc.width。例如,您可以使用

oc.width = $(".me-wrap-image").width();
oc.height = $(".me-wrap-image").height();

更好,如果您通过

调整结构
| .me-wrap-image
| .some-class-to-get-width-and-height
-> img

对于img.src你可以使用

$("div.some-class-to-get img").each(function(){
    img.src = $(this).attr('src');
});

但我不确定,如何让它正常工作。 希望你解决它:)