문제

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