2012-06-12 3 views
0

У меня есть подкласс UIView, содержащий письменную рекламу, и я хочу добавить его на фотографию в графическом контексте, но этот UIView не сохраняется в фотоальбоме при сохранении фотографии. Это код:Сохранить фотографию с помощью написанного на PhotoAlbum

- (IBAction)saveAction:(id)sender{ 


CGRect newFrame=imageInImageViewFrame(self.userImageView.bounds,self.userImageView.bounds.size); 


CGSize imageSize=self.userImageView.bounds.size; 

if (NULL != UIGraphicsBeginImageContextWithOptions) 
    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0); 
else 
    UIGraphicsBeginImageContext(imageSize); 

CGContextRef context = UIGraphicsGetCurrentContext(); 

UIGraphicsPushContext(context); 

[self.userImageView.image drawInRect: newFrame]; 
self.banner =[[Banner alloc]initWithFrame:CGRectMake(0, 324, 320, 48)];//this is the UIView that I want add on photo 

[self.userImageView addSubview:self.banner]; 
NSLog(@"The image is %@", self.banner); 

UIGraphicsPopContext(); 
[self renderView:self.gestureView inContext:context ]; 
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil); 

UIGraphicsEndImageContext(); 

NSString *docPath=(NSString*)[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *imagesPath=[NSString stringWithFormat:@"%@/%@/%@",docPath, self.profileName,imageDirectory]; 
    //trovare progressivo forse con enumerazione di directory 
[[NSFileManager defaultManager]createDirectoryAtPath:imagesPath withIntermediateDirectories:NO attributes:nil error:nil]; //crazione di una directory a un certo indirizzo 
NSData *imageData=UIImageJPEGRepresentation(screenshot, 0.9); 
NSMutableArray *dirContent=[[[NSFileManager defaultManager]contentsOfDirectoryAtPath:imagesPath error:nil]mutableCopy]; //copia del contenuto della directory 
[dirContent removeObject:@".DS_Store"]; //rimuove il file nascosto 
NSArray *sortedFileNames=[dirContent sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 
NSString *lastFileName=[sortedFileNames lastObject]; 
[dirContent release]; 

int progressiveImageNumber=[[[lastFileName componentsSeparatedByString:@"_"]objectAtIndex:1]intValue]; 
NSString *fullImageNamePath=[NSString stringWithFormat:@"%@/photoImage_%.2d.jpg",imagesPath,progressiveImageNumber+1]; 
NSLog(@"fullimagepath:%@",fullImageNamePath); 

[imageData writeToFile:fullImageNamePath atomically:YES];  

}

Фотография сохраняется, но UIView на не сохраняются. Как я могу сделать? Заранее спасибо

+0

фото сохраняется, но в UIView на не сохраненную .. не понимаю .. –

+0

UIView на фото как подвид –

ответ

0

Используйте этот код в ваш метод, удалив Yours код:

UIGraphicsBeginImageContext(self.gestureView.bounds.size); 
[self.gestureView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

// save image to photos 
UIImageWriteToSavedPhotosAlbum(screenShot, self, nil, nil); 
+0

Я должен добавить self.banner как подпункт фотографии –

+0

Спасибо, решение: [self.banner.layer renderInContext: UIGraphicsGetCurrentContext()]; –

Смежные вопросы