2013-08-29 2 views
1

Как говорится в названии, у меня много изображений, которые показывают круг. Проблема в том, что изображение представляет собой квадрат, и я хотел бы сделать прозрачными белые области вокруг круга. Это один из образов:UIImage обрезка белых областей вокруг круга IOS

enter image description here

К сожалению, белые участки не видны, так как на фоне переполнения стека белый. Есть ли возможность удалить четыре белых угла (без удаления всех белых областей, поскольку некоторые из элементов в круге могут быть белыми)?

В фотошопе я бы использовал инструмент «волшебной палочки», если вы знаете, что я имею в виду. Спасибо за любую помощь.

+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

в порядке, этот код делает именно то, что я хотел сделать, но у меня есть проблема. Я хочу снять скриншот не только изображения, но даже контента, который есть над ним, без добавления его в качестве подвью. Кроме того, когда я увеличиваю изображение, он пикселирован – Alessandro

+0

wow да, это действительно предотвращает пикселизацию. Единственная проблема теперь в том, что она не включает в себя другие элементы над кнопками – Alessandro

Смежные вопросы