目標:私は次のコードを実行UIImage
(つまり2.0のscale
財産で始まる)スケールプロパティを失うことなくUIImageをトリミングする方法は?
クロップ:
let croppedCGImage = originalUIImage.cgImage!.cropping(to: cropRect)
let croppedUIImage = UIImage(cgImage: croppedCGImage!)
このコードは動作しますが、しかしその結果、croppedUIImage
は、不正確なscale
性質を持っています1.0。
let croppedUIImage = UIImage(cgImage: croppedCGImage!, scale: 2.0, orientation: .up)
これは正しいスケールを生成するが、それは間違って半分にsize
寸法をカット:
私は、最終的なイメージを作成するときにscale
指定しようとしました。
ここで何をすればよいですか?
(*注:私は後でscale
プロパティの影響を受けているUIImagePNGRepresentation(_ image: UIImage)
で画像を保存するためにUIImage上scale
プロパティが重要です)
編集:
私が得ました次の作業を行います。残念ながら、これはちょうどCGImage
クロッピング機能よりもかなり遅いです。
extension UIImage {
func cropping(to rect: CGRect) -> UIImage {
UIGraphicsBeginImageContextWithOptions(rect.size, false, self.scale)
self.draw(in: CGRect(x: -rect.origin.x, y: -rect.origin.y, width: self.size.width, height: self.size.height))
let croppedImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return croppedImage
}
}
を呼び出します?それは私のために働いていない –