Сегодня для одного из проектов мне нужно было наложить одну картинку на другую с “перемешиванием”. Как показал поиск в google, сделать это не так сложно, как казалось после прочтения официальной документации. Сделать это можно следующим образом:
//создаем объекты изображений, с которыми будем работать
UIImage *lowerImage = [UIImage imageNamed:@"lower.png"];
UIImage *topImage = [UIImage imageNamed:@"top.png"];
//создаем структуру с размерами новой картинки
CGSize newSize = CGSizeMake(width, height);
//открываем контекст для рисования с заданными размерами
UIGraphicsBeginImageContext( newSize );
// рисуем нижнюю картинку в заданном прямоугольнике
[lowerImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
// рисуем верхнюю картинку поверх текущего контекста с уже нарисованным на нем предыдущем изображении
[topImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:1.0];
//создаем новую картинку на основе текущего контекста
UIImage *topImage = UIGraphicsGetImageFromCurrentImageContext();
//закрываем графический контекст
UIGraphicsEndImageContext();
Пару слов скажу о параметре kCGBlendModeNormal. Он определяет тип смешивания картинок. Normal говорит о том, что обе картинки “смешаются” в равной степени. Другие типы можно посмотреть в официальной документации. Всего определено довольно много видов смешивания двух изображений– вряд ли у вас появится необходимость придумывать и/или реализовывать, свой, особенный метод. :)
Полезная статья? Их будет больше, если вы поддержите меня!
Архив комментариев
2 комментария из прежней версии блога. Архив закрыт для новых ответов.
вах спасибо!
Большое спасибо! Очень пригодилось.