【发布时间】:2013-01-31 21:14:32
【问题描述】:
我有一张前景是黄色花瓶,背景是透明的图像:
我在 CGContext 上绘制它:
CGContextDrawImage(context, CGRectMake(0, 0, 100, 100), myImage.CGImage);
我可以在CGContextDrawImage之前使用以下语句在它周围画一个阴影:
CGContextSetShadowWithColor(context, CGSizeMake(0,0), 5, [UIColor blueColor].CGColor);
但我想在图像周围画一个笔触,使它看起来像下面这样:
如果我这样做:
CGContextSetRGBStrokeColor(shadowContext, 0.0f, 0.0f, 1.0f, 1.0f);
CGContextSetLineWidth(shadowContext, 5);
CGContextStrokeRect(shadowContext, CGRectMake(0, 0, 100, 100));
它(显然)在整个图像周围绘制一个矩形边框,如下所示:
这不是我需要的。
但是像第三张图片那样绘制边框的最佳方法是什么?
请注意,在这种情况下无法使用 UIImageView,因此使用 UIImageView 的 CALayer 的属性是不适用的。
【问题讨论】:
-
在拨打
CGContextDrawImage之前,您是否在拨打CGContextSetShadowWithColor? -
@elcanibal:是的。否则,就没有影子了。我正在编辑原始问题以反映这一点。
-
请张贴一张透明背景的黄色花瓶的PNG。您的第一张(未经修饰的)图像具有灰色背景。
-
我已经替换了第一张图片。它现在具有透明背景。请注意,您可以尝试任何具有透明背景的图像。我不会在应用程序中使用这个花瓶图像。它是从网上随机提取的。
标签: ios core-graphics cgcontext cgcontextdrawimage