web-dev-qa-db-ja.com

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()の最新のドキュメントには何も見つかりません。

14
RobertJoseph

Xcode8のSwiftエディターでこのコードを書くとき:

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)

そして、あなたのコードの2行目は直接Swiftに変換できるようです:

let image = UIImage(cgImage: imageRef!, scale: self.scale, orientation: self.imageOrientation)

そしてCGImageCreateWithImageInRectの最新のドキュメント、

CGImageCreateWithImageInRect

Swiftリンクをクリックすると、次のように表示されます。

func cropping(to rect: CGRect) -> CGImage?
34
OOPer
var imageRef = self.image.cropping(to: cropRect)
1
Juri Noga