2014-02-07 67 views
3

我正在使用UIImageView,並且必須將多個圖像設置爲背景。通過在iOS中結合多個圖像創建單個圖像

所有的圖像都有透明的背景,並在其角落包含任何一個符號。根據條件保存圖像。也有可能會有多個圖像。

目前我正在設置圖像,但我只能查看最後一張圖像。所以我希望所有的圖像應該一起顯示。

請讓我知道,如果有任何其他方式可以通過我可以將多個圖像轉換爲單個圖像。

任何幫助將不勝感激提前

+0

你想用1個圖像與多個圖像? –

回答

2

謝謝你可以用混合模式繪製圖像。例如,如果您有UIImage,則可以致電drawAtPoint:blendMode:alpha:。在大多數情況下,您可能會想使用kCGBlendModeNormal作爲混合模式。

+0

謝謝。有效 –

0

您可以使用:

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

@interface

imageType imgType; 

在.h文件中聲明。

而且在the.m文件

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

,然後你可以使用函數setImageType:設置你想要的任何圖像。

1

你應該將你的圖像合成爲一個 - 尤其是因爲它們具有alpha通道。

要做到這一點,你可以

  • 使用UIGraphicsBeginImageContextWithOptions到(現在的規模,而在屏幕上繪圖時相比,並選擇適當的不透明度)創建在目標尺寸的圖像
  • 渲染你的圖像使用的上下文CGContextDrawImage
  • 然後調用UIGraphicsGetImageFromCurrentImageContext以獲得結果作爲UIImage,您將其設置爲圖像視圖的圖像。
1

我已經創建了一個函數,它獲取圖像數組並返回單個圖像。我的代碼如下:

-(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(); 
} 

希望這對別人也有幫助。