我希望将图像缩放到一定宽度(例如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轴平移图像。我的问题是你如何计算这个值,以便可以看到图像的顶部。
干杯。
答案 0 :(得分:0)
我设法自己解决了这个问题:
scaleX = imgContainerWidth / imgWidth;
newHeight = imgHeight * scaleX;
translateY = newHeight - imgHeight;