通过在iOS中组合多个图像来创建单个图像

时间:2014-02-07 04:10:33

标签: ios uiimageview uiimage

我正在使用UIImageView,我必须将多个图像设置为背景。

所有图像都具有透明背景,并且在其角落处包含任何一个符号。根据条件保存图像。此外,也有可能存在多个图像。

目前我正在设置图片,但我只能查看最后一张图片。所以我希望所有图像都能一起显示。

如果有其他方法可以将多张图片转换为单张图片,请告诉我。

任何帮助将不胜感激

提前致谢

4 个答案:

答案 0 :(得分:2)

您可以使用混合模式绘制图像。例如,如果您有UIImage,则可以致电drawAtPoint:blendMode:alpha:。在大多数情况下,您可能希望使用kCGBlendModeNormal作为混合模式。

答案 1 :(得分:2)

我创建了一个获取图像数组并返回单个图像的函数。我的代码如下:

-(UIImage *)blendImages:(NSMutableArray *)array{

    UIImage *img=[array objectAtIndex:0];
    CGSize size = img.size;
    UIGraphicsBeginImageContext(size);

     for (int i=0; i<array.count; i++) {
        UIImage* uiimage = [array objectAtIndex:i];
        [uiimage drawAtPoint:CGPointZero blendMode:kCGBlendModeNormal alpha:1.0];
     }
     return UIGraphicsGetImageFromCurrentImageContext();
}

希望这也有助于其他人。

答案 2 :(得分:1)

您应该将图像合成一个 - 特别是因为它们具有Alpha通道。

要做到这一点,你可以

  • 使用UIGraphicsBeginImageContextWithOptions以目标尺寸创建图像(现在缩放,而不是在绘制到屏幕并选择适当的不透明度时)
  • 使用CGContextDrawImage
  • 将图片渲染到上下文中
  • 然后调用UIGraphicsGetImageFromCurrentImageContext将结果作为UIImage获取,您将其设置为图像视图的图像。

答案 3 :(得分:0)

您可以使用:

typedef enum _imageType{
  image1,
  image2,
  ...
  imageN
}imageType;

并在 @interface

中声明
imageType imgType;
在.h文件中

在.m文件中

-(void)setImageType:(imageType)type{
  imgType = type;
}

然后你可以使用函数 setImageType:来设置你想要的任何图像。