2013-08-29 37 views
1

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

enter image description here

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

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

+0

我想改变图像本身以包含透明像素 – Alessandro

回答

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); 

或者是与其他规模。

+0

对不起,但那不是我正在寻找的。我需要改变图像本身以包含透明像素。我已经想过这个 – Alessandro

+0

好吧,这段代码完全是我想要做的,但是我有一个问题。我不仅要截取imageView的截图,还要截取其中的内容,而不会将其添加为子视图。此外,当我放大图像它pixeled – Alessandro

+0

哇是的,它实际上确实防止像素化。现在唯一的问题是它不包含按钮上方的其他元素 – Alessandro