iphone - 如何根据ios sdk中放置的uiimage的坐标获取 View 的坐标?

标签 iphone ios4 uiimageview uiimage

我有一个应用程序,用户可以从相机拍摄照片并将其放置在全屏 ImageView 上。现在用户可以在其上删除矩形/正方形 View 并将覆盖 View 的坐标/大小发送到服务器。问题是我根据屏幕尺寸获取 View 的坐标,但我希望尺寸应该根据 ImageView 上的图像,因为通常来自相机的图像的分辨率比屏幕大。

请为我提供一种根据 uiimage 而不是屏幕获取叠加 View 大小的方法

编辑:例如:如果用户在图像中的人脸上绘制 View 并将裁剪 View 的坐标发送到服务器。那么如果坐标是根据屏幕而不是根据uiimage本身,那么坐标将很难与真实图像同步

最佳答案

答案很简单:

您拥有 UIImageView 的框架和绘制的正方形的框架(均相对于 self.view )

你只需要找到你的正方形的原点,相对于UIImageView .

只需减去:

//get the frame of the square
CGRect *correctFrame = square.frame;

//edit square's origin
correctFrame.origin.x -= imageView.frame.origin.x;
correctFrame.origin.y -= imageView.frame.origin.y;

现在correctFrame是你的方 block 相对于 imageView 的框架,而square.frame仍然相对于 self.view (因为我们没有改变它)

要根据图像分辨率获取帧,请执行与上面完全相同的操作,然后:

float xCoefficient = imageResolutionWidth / imageView.frame.size.width;
float yCoefficient = imageResolutionHeight / imageView.frame.size.height;

correctFrame.origin.x *= xCoefficient;
correctFrame.origin.y *= yCoefficient;
correctFrame.size.width *= xCoefficient;
correctFrame.size.height *= yCoefficient;

为什么:图像分辨率比 imageView.frame 大得多,所以你必须计算一个系数来调整你的平方。

仅此而已!

关于iphone - 如何根据ios sdk中放置的uiimage的坐标获取 View 的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11988763/

相关文章:

iphone - iPhone 和 iPad 中的缓存目录有多大?

iphone - 使用 SenTestCase 添加新测试(新测试未显示在管理方案中)

iphone - UIDocumentInteractionController 中没有选项

iphone - 如何解决 Xcode 4.1 (LION) GPS 错误?

iPhone session - 不活动超时

ios - 将 UITapGestureRecognizer 添加到 UIImageView 时出现错误访问

ios - UIImage 在 UIImageView iOS 中打开/关闭

ios - 如何调整 UIImageView 的大小(快速)

iPhone 在后台跟踪距离

iphone - v4.0 的 Base-SDK 意味着它不会安装在 4.1 或 4.2 设备上?