我正在尝试创建一个简单的裁剪功能,该功能可以实现设备屏幕密度和缩放比例
我基本上是在本教程中的代码之后建模的: https://www.youtube.com/watch?v=hz9pMw4Y2Lk
func cropImage(sender:AnyObject!) { //triggered by a button
let myScale = UIScreen.mainScreen().scale
var height = self.scrollView.bounds.height
var width = self.scrollView.bounds.width
UIGraphicsBeginImageContextWithOptions(CGSizeMake(width, height), true, myScale)
let offset = scrollView.contentOffset
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -offset.x, -offset.y)
scrollView.layer.renderInContext(UIGraphicsGetCurrentContext())
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
//i would like to check here if target image is >300x300px
if image.size.width > 300 && image.size.height > 300{
println("image correct")
println(image.size)
} else {
println("nope")
println(image.size)
}
}
到目前为止,我总是会得到一个bound.height / width的图像 - 这意味着在320设备上。一个8xp的前导/尾随差距,用户可能永远无法创建一个正确的图像"。
我理解为什么会这样,但我不明白我应该在哪里乘以UIScrollView的设备比例因子和/或缩放因子。
例如,在ScrollView上导入相机图片缩放比例为0.0 - 我希望将其保持在~8MP' ish。