ios - CIFilter:混合不同大小的图像

标签 ios blend core-image cifilter

我正在使用 CISourceOverCompositing 混合两个图像。使用此代码可以正常处理相同大小的图像:

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

现在我有不同的图像尺寸,例如:

前景图像:50px x 50px

图像背景:500 像素 x 500 像素

前面的代码将 imageForeground 设置在 outputImage 的 (0, 0) 位置。

如何混合这些定位 imageForeground 的图像,例如,在 (100, 100) 位置?

提前致谢!

最佳答案

这很简单 - 只需像这样转换输入图像:

[filter1 setValue:[imageForeground imageByApplyingTransform:CGAffineTransformMakeTranslation(100, 100)] forKey:kCIInputImageKey]

关于ios - CIFilter:混合不同大小的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777252/

相关文章:

ios - 尝试使用 AVFoundation 为视频中的图像添加水印

c# - Visual Studio 2013 中的快捷方式 "Open in Blend"在哪里?

css - 混合混合模式 : multiply - Firefox black bug

c# - 使用 GPU(可能是 CIFilters)将图像放置在更大的 Canvas 尺寸上而不使用图像上下文

ios - Xcode 12 中的 `Hide or Show debug area` 图标在哪里?

ios - UIPageControl 不在 valueChanged 上调用选择器

ios - NSXMLParser:非 ASCII 字符的意外结果

c# - 从 WPF 中的数据绑定(bind)数据网格中排除列

sprite-kit - 如何将 CIPixellate 核心图像过滤器添加到 Sprite Kit 场景中?

ios - 如何在 CPU 上同时运行 Core Animation 和 Core Image?