Я работаю над приложением для редактирования фотографий, и у меня есть merge two Images one Over another like this.Основной фильтр изображения CISourceOverCompositing не работает должным образом
Я реализовал следующий код сделать так:
Здесь imgedit является фоновым изображением и
imgEdit является UIImageView, содержащего imgedit.
UIImage *tempImg = [UIImage imageNamed:[NSString stringWithFormat:@"borderImg"]];
CIImage *inputBackgroundImage = [[CIImage alloc] initWithImage:imgedit];
CIImage *inputImage = [[CIImage alloc]initWithImage:tempImg] ;
CIFilter *filter = [CIFilter filterWithName:@"CISourceOverCompositing"];
[filter setDefaults];
[filter setValue:inputImage forKey:@"inputImage"];
[filter setValue:inputBackgroundImage forKey:@"inputBackgroundImage"];
CIImage *outputImage1 = [filter valueForKey:@"outputImage"];
CIContext *context = [CIContext contextWithOptions:nil];
imgEdit.image = [UIImage imageWithCGImage:[context createCGImage:outputImage1 fromRect:outputImage1.extent]];
Но outputImage я получаю после реализации выше кода является:
Я также попытался размер входного белого кадра изображения, используя следующий код:
tempImg=[tempImg resizedImageToSize:CGSizeMake(imgEdit.image.size.width,imgEdit.image.size.height)];
При использовании вышеуказанного кода изображение будет правильно изменено, но это тоже не работает.
Пожалуйста, помогите мне отсюда.
Ваша ценная помощь будет очень признательна.
Спасибо заранее.
Ваше фоновое изображение прямоугольник портрет и ваша маска изображение квадрат .. На самом деле, что это результат, который вы хотите добиться от этого образа? или я что-то упускаю? –
Похоже, что 'CIContext' изменяет размеры для большего размера изображения. Нарисуйте свой фон с размером изображения вашей маски. для ссылки используйте этот метод 'drawImage: inRect: fromRect:' метод в 'CIContext'. Я не очень разбираюсь в фильтрах. Рад узнать, есть ли у вас вопросы. –
На самом деле я хочу добавить белую рамку, которая показана над фоновым изображением. Дело в том, что фоновое изображение имеет квадратную рамку, тогда это нормально, и я могу получить желаемый результат. но проблема возникает, когда она имеет прямоугольную форму. И много спасибо за ваш быстрый ответ. –