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,

CGImageCreateWithImageInRect

Нажав на ссылку Swift, вы увидите:

func cropping(to rect: CGRect) -> CGImage?
var imageRef = self.image.cropping(to: cropRect)
Другие вопросы по тегам