图片截屏,并且存入图片库和document目录下。
然后,将图片作为附件以邮件形式发送。
先来张给力的图片——苍老师,哈哈。
截屏实现代码:
- (void)screenShoot { [actionBtn setHidden:YES]; UIGraphicsBeginImageContext(CGSizeMake(320, 480)); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *screenshoot = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // 写入图片库 UIImageWriteToSavedPhotosAlbum(screenshoot, nil, nil, nil); // 存入Document目录 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *pngPath = [documentsDirectory stringByAppendingPathComponent:@"screenShoot.png"]; NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(screenshoot)]; [imageData writeToFile:pngPath atomically:YES]; [actionBtn setHidden:NO]; }
邮件发送代码:
- (void)sendMsg { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *pngPath = [documentsDirectory stringByAppendingPathComponent:@"screenShoot.png"]; MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; NSString *subject=[NSString stringWithFormat:@"Screenshoot"]; [picker setSubject:subject]; NSString *emailBody=@"This is a screenshoot."; NSData* data = [NSData dataWithContentsOfFile:pngPath]; [picker addAttachmentData:data mimeType:@"image/png" fileName:@"ScreenShoot.png"]; [picker setMessageBody:emailBody isHTML:YES]; [self presentModalViewController:picker animated:YES]; [picker release]; } #pragma mark - #pragma mark Compose Mail // Dismisses the email composition interface when users tap Cancel or Send. Proceeds to update the message field with the result of the operation. - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { [self dismissModalViewControllerAnimated:YES]; }