это почти ответ Alexburtnik в
но только отметить, что UIImage.size является логический размер (в "точках")
однако, CGImage.cropping() используется фактический размер (в «пикселях»)
поэтому, если вы используете изображение с модификаторами @ 2x или @ 3x, вы обнаружите, что обрезка на самом деле составляет половину или треть ожидаемого.
поэтому при обрезке, вы можете рассмотреть умножая прямоугольник свойством «масштаб» образа первых, как показано в следующем:
func cropImage(image:UIImage, toRect rect:CGRect) -> UIImage? {
var rect = rect
rect.size.width = rect.width * image.scale
rect.size.height = rect.height * image.scale
guard let imageRef = image.cgImage?.cropping(to: rect) else {
return nil
}
let croppedImage = UIImage(cgImage:imageRef)
return croppedImage
}
Предположим, у меня есть размер изображения 2448 × 3264. Я хочу, чтобы эта часть была красной. Каковы параметры toRect? – BornShell
Смотрите следующее: http://stackoverflow.com/questions/37946990/cgrectmake-cgpointmake-cgsizemake-cgrectzero-cgpointzero-is-unavailable-in –