Blending with GPUImage: How to control the positio

2019-09-07 13:49发布

I use the following code to blend two images using GPUImage framework by Brad Larson. Is there a way to control the position of the topImage relatively to the baseImage? Now, it places topImage on the middle of baseImage.

GPUImageMultiplyBlendFilter *overlayBlendFilter = [[GPUImageMultiplyBlendFilter alloc] init];
GPUImagePicture *pic1 = [[GPUImagePicture alloc] initWithImage:baseImage];
GPUImagePicture *pic2 = [[GPUImagePicture alloc] initWithImage:topImage];

[pic1 addTarget:overlayBlendFilter];
[pic1 processImage];
[pic2 addTarget:overlayBlendFilter];
[pic2 processImage];

UIImage *blendedImage = [overlayBlendFilter imageByFilteringImage:filteredimage];

[imageView setImage:blendedImage];

1条回答
我想做一个坏孩纸
2楼-- · 2019-09-07 14:27

You'll need to use one or two GPUImageTransformFilters after your pictures, but before your blend, in order to size and scale your pictures as needed.

By default, the framework stretches one image to fit the dimensions of the other, so you need to account for that using an appropriate transform that you apply to one or both of the images. You need to do this before the blend, so that they are blended properly.

查看更多
登录 后发表回答