我面临以下问题:我必须合并两张图像 A 和 B 以创建新图像 C 作为合并的结果。
我已经知道如何合并两个图像,但在这种情况下,我的目标有点不同。
我希望图像 A 将作为图像 B 的背景。
例如,如果图像 A 的大小为 500x500,图像 B 的大小为 460x460,我希望图像 C(合并后的图像结果)为 500x500,图像 B (460x460) 居中。
在此先感谢您的任何帮助或建议
最佳答案
这是我在我的应用中所做的,但没有使用 UIImageView
:
UIImage *bottomImage = [UIImage imageNamed:@"bottom.png"]; //background image
UIImage *image = [UIImage imageNamed:@"top.png"]; //foreground image
CGSize newSize = CGSizeMake(width, height);
UIGraphicsBeginImageContext( newSize );
// Use existing opacity as is
[bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
// Apply supplied opacity if applicable
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.8];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
如果图像已经有不透明度,则不需要设置它(如 bottomImage),否则你可以设置它(如图像)。
创建此 UIImage
后,您可以将其嵌入到您的 UIImageView
更新:感谢 Ahmet AkkoK - 对于 Swift (2.2) 用户,混合模式宏已更改。 CGBlendMode .kCGBlendModeNormal
替换为 CGBlendMode.Normal
关于objective-c - iOS - 合并两个不同大小的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208951/