[英]Crop UIImage to square portion
我終於想出了如何讓它發揮作用。 這是代碼:
func croppedImage() -> UIImage {
let cropSize = CGSize(width: 280, height: 280)
let scale = (imageView.image?.size.height)! / imageView.frame.height
let cropSizeScaled = CGSize(width: cropSize.width * scale, height: cropSize.height * scale)
if #available(iOS 10.0, *) {
let r = UIGraphicsImageRenderer(size: cropSizeScaled)
let x = -scrollView.contentOffset.x * scale
let y = -scrollView.contentOffset.y * scale
return r.image { _ in
imageView.image!.draw(at: CGPoint(x: x, y: y))
}
} else {
return UIImage()
}
}
所以它首先計算imageView和實際圖像的比例。
然后它會創建該裁剪框的CGSize,如照片所示。 但是,寬度和高度必須按比例因子縮放。 (例如280 * 6.5)
您必須檢查手機是否正在運行iOS 10.0 for UIGraphicsImageRender - 如果沒有,它將無法正常工作。
使用裁剪框大小初始化此選項。
然后必須偏移圖像,這是通過獲取scrollView的內容偏移,否定它並乘以比例因子來計算的。
然后返回那時繪制的圖像!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.