Вовлечение изображения PNG в графический контекст для управления режимом наложения

Я должен вовлечь серию PNGs в a CGContext таким образом, я могу смешать их вместе:

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(context, kCGBlendModeOverlay);

В настоящее время у меня есть свое приложение, работающее на основе просто рисования каждого изображения как UIImageView и добавление их как подпредставление в файл представления через: [self addSubview:someImageView] ... но это не допускает управление режимом наложения, правильно?

В настоящее время через UIImageView Вар присваивают:

someImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image-name.png"]];

Таким образом, я попытался заменить тех, которые имеют любой из них без удачи:

[[UIImage imageNamed:@"image-name.png"] drawInRect:rect blendMode:kCGBlendModeOverlay alpha:1.0];

и эти потребности a CGImage который я не уверен, как сделать с PNGs:

CGContextDrawImage(context, rect, someCGImage);

Таким образом, что я пропускаю? Они не инициированы никаким взаимодействием, они просто должны загружать/тянуть когда загрузки приложения.

Спасибо за любого ведет.:)

7
задан Wojciech Rutkowski 22 December 2015 в 16:48
поделиться

1 ответ

Вам не нужно использовать UIImageViews. Вместо этого возьмите в скобки чертежи между вызовами UIGraphicsBeginImageContext и UIGraphicsEndImageContext.

Например (код не пытался):

UIImage* uiimage = [UIImage imageNamed:@"image-name.png"];
UIImage* uiimage2 = [UIImage imageNamed:@"other-image-name.png"];

CGSize size = uiimage.size; 

UIGraphicsBeginImageContext(size);

[uiimage drawAtPoint:CGPointZero blendMode:kCGBlendModeOverlay alpha:1.0];
[uiimage2 drawAtPoint:CGPointZero blendMode:kCGBlendModeOverlay alpha:1.0];

UIImage* blendedImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

Если Вы хотите использовать вызовы CG, вызывайте:

CGContextRef context = UIGraphicsGetCurrentContext();

для получения контекстного кода

.
20
ответ дан 6 December 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: