gpt4 book ai didi

ios - 使用 CGImageRef 裁剪图像

转载 作者:行者123 更新时间:2023-11-28 18:53:53 25 4
gpt4 key购买 nike

我正在用核心图形绘制图像,而不是我想将它用作另一个图像的 mask ,但只是得到清晰的矩形图像。

看看我的裁剪功能有什么问题?

    UIGraphicsBeginImageContext(CGSizeMake(self.bounds.size.width / 0.5, self.bounds.size.height / 0.5))
let imageCtx = UIGraphicsGetCurrentContext()
CGContextAddArc(imageCtx, CGFloat(self.frame.size.width ) , CGFloat(self.frame.size.height ), 158, 0, CGFloat(DegreesToRadians(Double(angle))) , 0)
CGContextSetLineWidth(imageCtx, 80)
CGContextDrawPath(imageCtx, .Stroke)
let myMask :CGImageRef = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext())!

UIGraphicsEndImageContext()
let maskImage = UIImage(CGImage: myMask)

let testVideoPreview = UIImage(named: "alex")
guard let makedImage = testVideoPreview else {return}

var imageMaskOne: CGImageRef = CGImageMaskCreate(CGImageGetWidth(myMask), CGImageGetHeight(myMask), CGImageGetBitsPerComponent(myMask), CGImageGetBitsPerPixel(myMask), CGImageGetBytesPerRow(myMask), CGImageGetDataProvider(myMask), nil, // Decode is null
true)!

let masked: CGImageRef = CGImageCreateWithMask(makedImage.CGImage, imageMaskOne)!

//Finished
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 350, height: 350))
imageView.image = UIImage(CGImage: masked)
self.addSubview(imageView)

最佳答案

如果您只需要在特定坐标处创建裁剪,则有一种更简单的方法 CGImageCreateWithImageInRect

func CGImageCreateWithImageInRect(_ image: CGImage?, _ rect: CGRect) -> CGImage?

这里是 documentation .

关于ios - 使用 CGImageRef 裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498536/

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