-
慕的地10843
这是我在应用程序中所做的,但是没有使用UIImageView:UIImage *bottomImage = [UIImage imageNamed:@"bottom.png"]; //background imageUIImage *image = [UIImage imageNamed:@"top.png"]; //foreground imageCGSize 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
-
慕标5832272
嘿,我得到了多张图像,并添加了具有不同前景的相同背景。UIImage *bottomImage = [UIImage imageNamed:@"photo 2.JPG"]; //background imageUIImage *image = [UIImage imageNamed:@"photo 3.JPG"]; //foreground imageUIImage *image1 = [UIImage imageNamed:@"photo 4.JPG"]; //foreground imageUIImage *image2 = [UIImage imageNamed:@"photo 5.JPG"]; //foreground imageCGSize newSize = CGSizeMake(320, 480);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.4];[image1 drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.3];[image2 drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.2];UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();resultView = [[UIImageView alloc] initWithImage:newImage];resultView.frame = CGRectMake(0, 0,320,460);[self.view addSubview:resultView];
-
慕桂英3389331
刚刚为想要使用Srikar Appal答案的用户提供了快速粘贴功能。(如果背景图片和前景图片的大小不同)- (UIImage *) mergeImages:(NSString *)bgImageFileName foreGround:(NSString *)fgImageFileName { UIImage *bottomImage = [UIImage imageNamed:bgImageFileName]; //background image UIImage *image = [UIImage imageNamed:fgImageFileName]; //foreground image CGSize newSize = CGSizeMake(bottomImage.size.width, bottomImage.size.height); UIGraphicsBeginImageContext(newSize); // Use existing opacity as is [bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; // Apply supplied opacity if applicable // Change xPos, yPos if applicable [image drawInRect:CGRectMake(11,11,image.size.width,image.size.height) blendMode:kCGBlendModeNormal alpha:1.0]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage;}