Прежде всего, мое приложение просит пользователя выбрать фотографию из коллекции или сделанных снимков камеры, затем перейти к обрезке редактора изображений, чтобы наше окончательное изображение было квадратным в соответствии с положением области обрезки. Но, проблема заключается в том, что об этом подробно сказано немного. Без UIImagePicker, как это сделать?UIImageView обрезка квадрата
Я также попытался взять квадратную картинку, без успеха.
Я реализовал изображение изображения UIPinchGesture, чтобы пользователь мог увеличивать или уменьшать изображение, но на изображении нет квадрата обрезки. Я должен добавить область обрезки.
Это кадрирование функции UIImage:
func croppImageByRect() -> UIImage {
let ratio: CGFloat = 1 // square
let delta: CGFloat
let offSet: CGPoint
//make a new square size, that is the resized imaged width
let newSize = CGSizeMake(size.width, (size.width - size.width/8))
//figure out if the picture is landscape or portrait, then
//calculate scale factor and offset
if (size.width > size.height) {
delta = (ratio * size.width - ratio * size.height)
offSet = CGPointMake(delta/2, 0)
} else {
delta = (ratio * size.height - ratio * size.width)
offSet = CGPointMake(0, delta/2)
}
//make the final clipping rect based on the calculated values
let clipRect = CGRectMake(-offSet.x, -offSet.y, (ratio * size.width) + delta, (ratio * size.height) + delta)
//start a new context, with scale factor 0.0 so retina displays get
//high quality image
UIGraphicsBeginImageContextWithOptions(newSize, true, 0.0)
UIRectClip(clipRect)
drawInRect(clipRect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}