gpt4 book ai didi

ios - 在另一个图像之上绘制一个圆形图像 - UIGraphicsBeginImageContextWithOptions

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:06:05 26 4
gpt4 key购买 nike

一段时间以来,我一直在努力使用这种方法。我正在另一张图片上绘制头像。用户图片我想成为一个圆圈,但我似乎无法弄清楚如何。用户图片是 UIImage 而不是 UIImageView。如果它是 ImageView ,我知道如何制作一个圆圈。下面是代码。可能有更好的方法。

-(UIImage *)drawImage:(UIImage*)pinImage withBadge:(UIImage *)user{



UIGraphicsBeginImageContextWithOptions(pinImage.size, NO, 0.0f);
[pinImage drawInRect:CGRectMake(0, 0, pinImage.size.width, pinImage.size.height)];
[user drawInRect:CGRectMake(20.0, 10.0, user.size.width/2, user.size.height/2)];
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return resultImage;

}

效果不错,但是用户画像还是正方形,不是圆形。我曾尝试将用户图像添加到 UIImageView,将其转换为圆形,然后通过调用 yourImageView.image 在方法中使用它,但没有成功。我还尝试了许多其他方法。我的逻辑很可能不正确。

期望的结果是在图钉/注释顶部放置一个圆形图像。黑点将是图像(比这更大的圆圈)。

enter image description here

最佳答案

您可以将图像上下文剪切到图像的路径

// Start the image context
UIGraphicsBeginImageContextWithOptions(pinImage.size, NO, 0.0);
UIImage *resultImage = nil;

// Get the graphics context
CGContextRef context = UIGraphicsGetCurrentContext();

// Draw the first image
[pinImage drawInRect:CGRectMake(0, 0, pinImage.size.width, pinImage.size.height)];

// Get the frame of the second image
CGRect rect = CGRectMake(20.0, 10.0, user.size.width/2, user.size.height/2)

// Add the path of an ellipse to the context
// If the rect is a square the shape will be a circle
CGContextAddEllipseInRect(context, rect);
// Clip the context to that path
CGContextClip(context);

// Do the second image which will be clipped to that circle
[user drawInRect:rect];

// Get the result
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();

// End the image context
UIGraphicsEndImageContext();

关于ios - 在另一个图像之上绘制一个圆形图像 - UIGraphicsBeginImageContextWithOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22386912/

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