UIImage修剪圆形IOS周围的白色区域

时间:2013-08-29 13:50:23

标签: ios image-processing uiimage

正如标题所说,我有许多显示圆圈的图像。问题是图像是正方形,我想使圆圈周围的白色区域透明。这是其中一张图片:

enter image description here

不幸的是,白色区域不可见,因为堆栈溢出的背景是白色的。是否有可能移除四个白色角落(不删除所有白色区域,因为圆圈中的某些元素可能是白色的)?

在Photoshop中我会使用“魔杖”工具,如果你知道我的意思。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

只需将角半径设置为图像宽度或高度的一半(当然,假设图像是方形的):

#import <QuartzCore/QuartzCore.h>

imageView.layer.cornerRadius  = imageView.bounds.size.width;
imageView.layer.masksToBounds = YES;

并且,如果您喜欢(附加)边框:

imageView.layer.borderWidth = 0.5f;

然后,阅读你的评论,以获得这样的图像:

UIGraphicsBeginImageContext(imageView.layer.bounds.size);
[imageView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

渲染的image正是图层的大小。

要在放大时防止像素化,请尝试以下操作:

BOOL  opaque = NO;
short scale  = [[UIScreen mainScreen] scale];
UIGraphicsBeginImageContextWithOptions(view.bounds.size, opaque, scale);

或者可能是另一种规模。