2010-01-05 100 views
7

我在UIView上有两个UIImageView。 每个UIImageView都有一个UIImage。现在我想从两个UIImageView创建一个UIImage。从两个UIImageView创建一个UIImage

请给出建议,我该如何做到这一点。

+0

我不确定你实际上想要实现什么。产生的图像叠加了2张图像或其他图像之一.. – Nithin 2010-01-05 10:49:26

回答

11

如果您有三个UIImageViews的一个视图,并创建对应的出口

IBOutlet UIImageView *imageView1; 
IBOutlet UIImageView *imageView2; 
IBOutlet UIImageView *imageView3; 

你可以做一些类似下面的imageViews 1和2组合成的ImageView 3

UIGraphicsBeginImageContext(imageView1.image.size); 

CGRect rect = CGRectMake(0, 0, imageView1.image.size.width, imageView1.image.size.height); 

[imageView1.image drawInRect:rect]; 
[imageView2.image drawInRect:rect blendMode:kCGBlendModeScreen alpha:0.5]; 

UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

[imageView3 setImage:resultingImage]; 

CGBlendMode让你选择以下任何合成操作为您的图像:

enum CGBlendMode { 
    kCGBlendModeNormal, 
    kCGBlendModeMultiply, 
    kCGBlendModeScreen, 
    kCGBlendModeOverlay, 
    kCGBlendModeDarken, 
    kCGBlendModeLighten, 
    kCGBlendModeColorDodge, 
    kCGBlendModeColorBurn, 
    kCGBlendModeSoftLight, 
    kCGBlendModeHardLight, 
    kCGBlendModeDifference, 
    kCGBlendModeExclusion, 
    kCGBlendModeHue, 
    kCGBlendModeSaturation, 
    kCGBlendModeColor, 
    kCGBlendModeLuminosity, 
    kCGBlendModeClear, 
    kCGBlendModeCopy, 
    kCGBlendModeSourceIn, 
    kCGBlendModeSourceOut, 
    kCGBlendModeSourceAtop, 
    kCGBlendModeDestinationOver, 
    kCGBlendModeDestinationIn, 
    kCGBlendModeDestinationOut, 
    kCGBlendModeDestinationAtop, 
    kCGBlendModeXOR, 
    kCGBlendModePlusDarker, 
    kCGBlendModePlusLighter 
}; 
+0

尼尔斯城堡 - 我需要执行相同的操作。我的主要imageview是静态的,但我的第二个imageview是可拖动的。所以上面的代码创建我的第二个imageview相同的主要imageview界限。如何将这两个图像合并为一个,而不将其绑定为mainImageview?谢谢。 – iOSAppDev 2011-11-01 16:26:18