I'm using CISourceOverCompositing to blend two images. It works ok with same size images with this code:

CIFIlter *filter1 = [CIFilter filterWithName: @"CISourceOverCompositing"];
[filter1 setDefaults];
[filter1 setValue: imageForeground forKey: @"inputImage"];
[filter1 setValue: imageBackground forKey: @"inputBackgroundImage"];
CIImage *outputImage = [filter1 outputImage];

Now I have different image sizes, for example:

imageForeground: 50px x 50px

imageBackground: 500px x 500px

The previous code set the imageForeground at (0, 0) position of the outputImage.

How can I blend these images positioning the imageForeground, for example, at (100, 100) position?

Thanks in advance!

有帮助吗?

解决方案

It's pretty easy - just transform the input image like so:

[filter1 setValue:[imageForeground imageByApplyingTransform:CGAffineTransformMakeTranslation(100, 100)] forKey:kCIInputImageKey]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top