iOS:向具有透明背景的图像上下文添加轮廓/笔划

iOS:向具有透明背景的图像上下文添加轮廓/笔划,ios,objective-c,xcode,Ios,Objective C,Xcode,通过这里的图像是具有透明背景的不同形状的PNG。除了合并它们(效果很好),我还想给新图像加上几个像素厚的轮廓。但我似乎无法做到这一点 (所以我只是想澄清一下,我想要的是上下文中实际形状周围的轮廓,而不是整个图像周围的矩形。) 谢谢你的时间 Markus如果您将支持的CALayer设置为图像的CGImage,则可以将其用作需要轮廓的层的遮罩层。完成后,可以将图层渲染到另一个上下文中,然后从中获取另一个UIImage //编辑:类似于答案中描述的内容 + (UIImage *)mergeBackgr

通过这里的图像是具有透明背景的不同形状的PNG。除了合并它们(效果很好),我还想给新图像加上几个像素厚的轮廓。但我似乎无法做到这一点

(所以我只是想澄清一下,我想要的是上下文中实际形状周围的轮廓,而不是整个图像周围的矩形。)

谢谢你的时间


Markus

如果您将支持的CALayer设置为图像的CGImage,则可以将其用作需要轮廓的层的遮罩层。完成后,可以将图层渲染到另一个上下文中,然后从中获取另一个UIImage

  • //编辑:类似于答案中描述的内容
  • + (UIImage *)mergeBackgroundImage:(UIImage *)backgroundImage withOverlayingImage:(UIImage *)overlayImage{
        UIGraphicsBeginImageContextWithOptions(backgroundImage.size, NO, backgroundImage.scale);
        [backgroundImage drawInRect:CGRectMake(0, 0, backgroundImage.size.width, backgroundImage.size.height)];
        [overlayImage drawInRect:CGRectMake(backgroundImage.size.width - overlayImage.size.width, backgroundImage.size.height - overlayImage.size.height, overlayImage.size.width, overlayImage.size.height)];
    
    //Add stroke.
    
        UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return result;
    }