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().


person RobertJoseph    schedule 25.07.2016    source источник


Ответы (1)


Когда я пишу этот код в редакторе Swift Xcode8:

let imageRef = CGImageCreateWithImageInRect(self.CGImage!, cropRect)

Swift показал мне ошибку:

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,

CGImageCreateWithImageInRect

Нажав на ссылку Swift, он показывает:

func cropping(to rect: CGRect) -> CGImage?
person OOPer    schedule 25.07.2016