gpt4 book ai didi

ios - 裁剪 UIImage - 更改背景颜色

转载 作者:行者123 更新时间:2023-11-30 11:29:17 26 4
gpt4 key购买 nike

我有一个函数可以将 UIImage 裁剪为给定矩形的尺寸。有时矩形的一部分会落在图像之外。裁剪后,这个多余部分的默认颜色是白色。可以改变这个颜色吗?

func crop(mainImage:UIImage, rectangle:CGRect) -> UIImage?{

let rectSize = CGSize(width: floor(rectangle.width), height: floor(rectangle.height))
UIGraphicsBeginImageContextWithOptions(rectSize, false, mainImage.scale)
let context:CGContext = UIGraphicsGetCurrentContext()!;
mainImage.draw(at: CGPoint(x: -rectangle.origin.x, y: -rectangle.origin.y))
let croppedImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return croppedImage
}

最佳答案

You can use extension 
extension UIImage {
func crop( rect: CGRect) -> UIImage {
var rect = rect
rect.origin.x*=self.scale
rect.origin.y*=self.scale
rect.size.width*=self.scale
rect.size.height*=self.scale

let imageRef = self.cgImage!.cropping(to: rect)
let image = UIImage(cgImage: imageRef!, scale: self.scale, orientation: self.imageOrientation)
return image
}
}

either use method like below

/**
Extracts image at a given rect from an image
- parameter rect : rect for which UIImage should be extracted within
- returns : new UIImage created from rect value supplied
*/
func imageByCroppingAtRect(_ rect: CGRect) -> UIImage? {

let imageRef: CGImage? = cgImage?.cropping(to: rect)
if imageRef == nil {
return nil
} else {
let subImage: UIImage = UIImage(cgImage: imageRef!)
return subImage
}
}

关于ios - 裁剪 UIImage - 更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com