2016-05-05 4 views
2

Я показываю пользователей на карте с пользовательскими маркерами. Каждый маркер будет содержать изображение пользователя, например, на изображении ниже: enter image description hereСлияние двух изображений в swift

В карте могут отображаться несколько пользователей. Я получаю данные пользователей и их изображения через API. Изображение, которое я получаю от API, представляет собой просто прямоугольное изображение. Но я должен показать это изображение, очень похожее на приведенное выше изображение. Поэтому я подумал о двух решениях.

  1. Получите изображение маркера из самого API, который можно легко отобразить как изображение на карте.
  2. У меня есть внешний эллипс как изображение. Я могу разместить круглое изображение в этом эллипсе и создать новое изображение. Это можно использовать в качестве маркера. Но для этого мне придется объединить две фотографии. Я могу объединить их. Но образ пользователей всегда прямоугольник. Я не могу это сделать.

Может ли кто-нибудь помочь мне с лучшим решением или просто завершить мое решение?

ответ

2

Первый вариант будет самым простым. Если вы собираетесь со вторым вариантом, то здесь что-то:

-(UIImage *)makeRoundedImage:(UIImage *) image 
        radius: (float) radius { 

    CALayer *imageLayer = [CALayer layer]; 
    imageLayer.backgroundColor = [UIColor whiteColor].CGColor; 
    imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height); 
    imageLayer.contents = (id) image.CGImage; 
    imageLayer.masksToBounds = YES; 
    imageLayer.cornerRadius = radius; 
    UIGraphicsBeginImageContext(image.size); 
    [imageLayer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return roundedImage; 
} 

Это создаст круглый UIImage с белым фоном. Просто используйте полученный UIImage как значок маркера.

+0

Совершенный !! :) Это то, что я искал. Я быстро конвертировал ваш код. И работает отлично! –

-1

Это не будет отвечать вам вопрос полностью, но круглее использование ImageView это (Этот код находится в объективном C и «profilePic» является примером UIImageView):

profilePic.layer.cornerRadius = profilePic.frame.size.width/2; 
+0

Это не ответ. Я не просил сделать раунд UIImageView. Мой вопрос состоял в том, чтобы сделать UIImage круглым. –

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