Objective-C. Как смешать две картинки

Сегодня для одного из проектов мне нужно было наложить одну картинку на другую с “перемешиванием”. Как показал поиск в 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 говорит о том, что обе картинки “смешаются” в равной степени. Другие типы можно посмотреть в официальной документации. Всего определено довольно много видов смешивания двух изображений– вряд ли у вас появится необходимость придумывать и/или реализовывать, свой, особенный метод. :)

Полезная статья? Их будет больше, если вы поддержите меня!

https://money.yandex.ru/embed/small.xml?account=410011399843532&quickpay=small&yamoney-payment-type=on&button-text=06&button-size=l&button-color=orange&targets=%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D1%8E+%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82+lexpenz.com&default-sum=50&successURL=

Архив комментариев

2 комментария из прежней версии блога. Архив закрыт для новых ответов.

  1. вах спасибо!

  2. Вячеслав

    Большое спасибо! Очень пригодилось.