正如标题所说,我有许多显示圆圈的图像。问题是图像是正方形,我想使圆圈周围的白色区域透明。这是其中一张图片:
不幸的是,白色区域不可见,因为堆栈溢出的背景是白色的。是否有可能移除四个白色角落(不删除所有白色区域,因为圆圈中的某些元素可能是白色的)?
在Photoshop中我会使用“魔杖”工具,如果你知道我的意思。谢谢你的帮助。
答案 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);
或者可能是另一种规模。