1

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

在此处输入图像描述

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

如果你明白我的意思,我会在 Photoshop 中使用“魔术棒”工具。谢谢你的帮助。

4

1 回答 1

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

或者也许是另一个规模。

于 2013-08-29T13:55:31.300 回答