iPhone SDK:图像缩放问题

3

在我的应用程序中,我使用以下代码增加和减小图像的大小:

float xx = image.frame.origin.x;
float yy = image.frame.origin.y;

image.frame = CGRectMake(xx,yy, width*0.98, height*0.98);


float xx = image.frame.origin.x;
float yy = image.frame.origin.y;

image.frame = CGRectMake(xx,yy, width*1.02, height*1.02);

这段代码的作用是将图像从左上角开始缩放,因此随着缩放的进行,图像的焦点逐渐移出屏幕,增加或减少。
所以我的问题是,我的图像焦点不在左上角,而是在图像的特定位置。当我缩放图像时,它使用左上角作为原点进行缩放。我该如何改变图像缩放的起始点,或者更好的方法是,通过数学计算新形状的平移,使得新的焦点位置移动到未缩放图像焦点的位置? 谢谢。
1个回答

0

使用您的缩放方法,您应该重新计算图像中要成为原点的另一点。从那个新点开始,您应该获取新的xx和yy坐标,或者您可以使用image.center。

您还应该查看CGAffineTransform参考,因为每个UIView都有一个transform属性。


我不确定你的意思,重新计算另一个点?就我的代码而言,它甚至还没有包括那个点,我知道它的坐标,你是说每次我缩放图像时都必须重新计算那个点吗?而且,如果我想从图像中的某个点获取新的xx和yy,需要进行什么计算? - Sam
“另一个点”指的是你需要的焦点。你有一张图像,它在你的情况下被表示为原点宽度和高度。如果你知道这4个参数,并且知道所应用的变换,你可以计算出图像中每个像素的位置。因此,当你缩放图像时,为了将其放置在所需位置,你还必须重新计算所需位置。(因为显然框架正在使用另一个位置作为锚点。) - Teodor Kostov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接