【问题标题】:iPhone SDK: Image scaling problemiPhone SDK:图像缩放问题
【发布时间】:2011-09-22 13:13:35
【问题描述】:

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

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);

此代码的作用是从左上角的原点缩放图像,因此当缩放完成时,图像焦点移出屏幕,增加增加,减少减少。

所以我遇到的问题是我的图像的焦点不是左上角,而是图像上的特定点。当我的图像被缩放时,它使用左上角作为其原点进行缩放。如何更改图像缩放的点,或者最好以数学方式计算新形状的平移,以便将新焦点位置移动到未缩放图像焦点所在的位置? 谢谢

【问题讨论】:

    标签: iphone center equation image-scaling


    【解决方案1】:

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

    您还应该看看CGAffineTransform Reference,因为每个UIView 都有一个转换属性。

    【讨论】:

    • 我不确定你的意思,重新计算另一点?就我的代码而言,它甚至还没有包含那个点,我知道它的坐标,你的意思是每次我缩放图像时都必须重新计算那个点吗?以及如何从图像中的某个点获取新的 xx 和 yy,进行哪些计算?
    • “另一点”是指您需要的点——焦点。您有一个图像,在您的情况下表示为原点宽度和高度。如果您知道这 4 个参数并且知道应用的变换,您就可以计算图像中每个像素的位置。因此,当您缩放图像时,为了将其放置在您想要的位置,您还必须重新计算您想要的位置。 (因为显然框架正在使用另一个位置作为锚点。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2014-07-09
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    相关资源
    最近更新 更多