Я пытаюсь обрезать UIImage, чтобы сделать его круглым, я начинаю с 140 * 140px изображения и затем запустить этот код:Низкое качество UIImage после прикрепив ее к кругу
//round the image
UIImageView *roundView = [[UIImageView alloc] initWithImage:smallImage];
UIGraphicsBeginImageContextWithOptions(roundView.bounds.size, NO, 1.0);
[[UIBezierPath bezierPathWithRoundedRect:roundView.bounds
cornerRadius:roundView.frame.size.width/2] addClip];
[smallImage drawInRect:roundView.bounds];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
smallImage = finalImage;
//end round image
Это работает по желанию но качество очень низкое, изображение выглядит нечетким, а края вокруг круга зазубрены. Я хочу достичь их такого же эффекта, как:
image.layer.cornerRadius = self.thumbnailView.frame.size.width/2;
image.clipsToBounds = YES;
Не знаете, почему качество изображения настолько низкое. Может кто-нибудь дать мне несколько указателей, пожалуйста?
Это compalsary для клипа вашего UIImage, чтобы сделать его круговым .. ?? вы можете изменить изображение в форме круглой формы, а затем добавить изображение в imageView .. – Chandan
Я делал это раньше, но у меня много UIImages в виде таблицы, поэтому округление изображения значительно снижает производительность. – Kex
@ Kex Мне кажется, что вы делаете это в методе 'cellForRowAtIndexPath'. Это неправильное место для этого. Создаются только несколько ячеек, а затем удаляются. Вам нужно сделать это один раз за созданную ячейку. Тогда у него уже будут закругленные углы для будущих повторных использования. – Fogmeister