2012-06-14 2 views
2

мне нужно, чтобы объединить два изображения в одно изображение, вот мой код:объединить два изображения в одно изображение в iPhone

-(UIImage*)mergeImage:(UIImage*)mask overImage:(UIImage*)source inSize:(CGSize)size 
{ 
    //Capture image context ref 

    UIImageView *totalimage=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; 

    UIImageView *firstImage=[[UIImageView alloc] initWithImage:mask]; 
    UIImageView *secondImage=[[UIImageView alloc] initWithImage:source]; 

    [totalimage addSubview:firstImage]; 
    [totalimage addSubview:secondImage]; 

    UIGraphicsBeginImageContext(totalimage.bounds.size); 
    [totalimage.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    //Draw images onto the context 
    [source drawInRect:CGRectMake(0, 0, source.size.width, source.size.height)]; 
    [mask drawInRect:CGRectMake(0, 0, mask.size.width, mask.size.height)]; 

    return viewImage; 

} 

Я называю этот метод следующим образом:

UIImage *totalImage = [self mergeImage:self.Apicimage overImage:questionImage inSize:CGSizeMake(100, 100)]; 

но на исполнение Я получаю этот вывод:

Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextSaveGState: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextSetBlendMode: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextSetAlpha: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextTranslateCTM: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextScaleCTM: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextConcatCTM: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextDrawImage: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextRestoreGState: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextSaveGState: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextSetBlendMode: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextSetAlpha: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextTranslateCTM: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextScaleCTM: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextConcatCTM: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextDrawImage: invalid context 0x0 
Jun 15 16:11:06 iPad-2 VueGuides[9195] <Error>: CGContextRestoreGState: invalid context 0x0 

Может ли кто-нибудь мне помочь. Как объединить два изображения?

+0

в дополнение к ответу ArunGJ, который является правильным, вы на самом деле не с помощью 'параметра CGSize' вы передаете в. – Nate

ответ

3

код

[source drawInRect:CGRectMake(0, 0, source.size.width, source.size.height)]; 
    [mask drawInRect:CGRectMake(0, 0, mask.size.width, mask.size.height)]; 

должны быть написаны до

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
Смежные вопросы