Swift 3.0: как вызвать CGImageCreateWithImageInRect()?
Мне нужно реализовать этот код Objective-C в Swift 3.0 (я использую Xcode 8 Beta 3):
// Note: this code comes from an Obj-C category on UIImage
CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, cropRect);
UIImage *image = [UIImage imageWithCGImage:imageRef scale:self.scale orientation:self.imageOrientation];
Я не могу найти ничего в последней документации для CGImageCreateWithImageInRect()
,
2 ответа
Решение
Когда я пишу этот код в редакторе Swift Xcode8:
let imageRef = CGImageCreateWithImageInRect(self.CGImage!, cropRect)
Свифт показал мне ошибку как:
error: 'CGImageCreateWithImageInRect' has been replaced by instance method 'CGImage.cropping(to:)'
Итак, я изменил строку на:
let imageRef = self.cgImage!.cropping(to: cropRect)
И вторая строка вашего кода, кажется, напрямую конвертируется в Swift:
let image = UIImage(cgImage: imageRef!, scale: self.scale, orientation: self.imageOrientation)
И последние документы CGImageCreateWithImageInRect
,
Нажав на ссылку Swift, вы увидите:
func cropping(to rect: CGRect) -> CGImage?