2013-08-29 70 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