【发布时间】:2014-05-28 08:03:31
【问题描述】:
当我使用 kineticjs 在我的页面上添加大图像时,当我将它们设置为非常小的尺寸时,我的质量会变得很差。结果通常是锯齿状/粗糙的。但是,如果我添加相同的图像并仅使用 img src 设置尺寸,我将获得更好的质量和平滑的缩小版本。
有什么我可以添加来解决这个问题的吗? jsfiddle,截图和代码都在下面
JSFIDDLE: http://jsfiddle.net/vTLkn/6/
// Define Stage
var stage = new Kinetic.Stage({
container: "canvas",
width: 300,
height: 200
});
//Define Layer for Images
var layer = new Kinetic.Layer();
stage.add(layer);
// Draw Image Function
function drawImage(image,w,h,x,y) {
// Define Function's Image Properties
var theImage = new Kinetic.Image({
image: image,
x: x,
y: y,
width: w,
height: h
});
// Add Function's Image to Layer
layer.add(theImage);
layer.draw();
}
// Define Image 1 and Draw on Load
var image1 = new Image();
image1.onload = function() {
drawImage( this, 250, 188, 0, 0);
};
image1.src = "http://i.imgbox.com/vMfjLbnw.jpg";
【问题讨论】:
-
Canvas(通常)使用双线性插值(在这种情况下为低通滤波器)而不是图像使用的双三次。我不知道如何用 kinectjs 来做,但这里解释了原理(向下步进):stackoverflow.com/questions/17861447/… 短版是你需要将图像缩小两次(或更多),首先是目标尺寸的一半,然后从一半缩小到最终尺寸。
-
感谢您的链接。我不确定如何使用 kineticjs 执行相同的程序,因为它是绘制图像的不同方式?