缩放图像2d变换矩阵

时间:2014-07-23 12:47:17

标签: javascript image matrix

我希望将图像缩放到一定宽度(例如imgContainerWidth),其中必须保持纵横比。我采用了2d变换矩阵方法。

矩阵:

 | a  c e |
 | b  d f |
 | 0  0 1 | // This bottom row is constant.

 a = scales the element horizontally
 b = skew the the element horizontally
 c = skew the the drawing vertically
 d = scales the drawing vertically
 e = moves the the element horizontally
 f = moves the the element vertically

 matrix(a, b, c, d, e, f);

 .....


 scaleX = imgContainerWidth / imgWidth; 
 matrix[0] = scaleX; // scale X
 matrix[3] = scaleX; // scale Y

 .....

这可以很好地缩放图像。但是,图像的顶部不在视图中,需要向下移动。我需要沿y轴平移图像。我的问题是你如何计算这个值,以便可以看到图像的顶部。

干杯。

1 个答案:

答案 0 :(得分:0)

我设法自己解决了这个问题:

 scaleX = imgContainerWidth / imgWidth;
 newHeight = imgHeight * scaleX;
 translateY = newHeight - imgHeight;