2011-12-21 11 views
0

UIViewから写真を撮ろうとしています。つまり、私はUIViewからスクリーンショットを作成しますが、常にUIImageは空白で、理由はわかりません。そして、私は自分のiPhoneでテストし、空白で写真を撮りました。 :(私のUIViewまたはUIImageは常に空白です

私は#import <QuartzCore/QuartzCore.h>を入れてQuartzCore.frameworkを追加

誰かが私を助けてもらえ

をここに私のコードです:?

- (IBAction)savePhoto:(id)sender 
{  
    UIImage *imageCaptured = [self imageFromView:self.view]; 

    NSString *pngPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.png"]; 

    // Write a UIImage to JPEG with minimum compression (best quality) 
    [UIImagePNGRepresentation(imageCaptured) writeToFile:pngPath atomically:YES]; 

    // Let's check to see if files were successfully written... 

    // Create file manager 
    NSError *error; 
    NSFileManager *fileMgr = [NSFileManager defaultManager]; 

    // Point to Document directory 
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 

    // Write out the contents of home directory to console 
    NSLog(@"Documents directory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]); 
} 

- (UIImage *) imageFromView:(UIView *)view 
{  
    UIGraphicsBeginImageContext(CGSizeMake(320,372)); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [view.layer drawInContext:context]; 
    UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    [imageView setImage:screenShot]; 
    return screenShot; 
} 
+0

あなたの問題に対する答えではありませんが、なぜ 'view.bounds.size'ではなくイメージのサイズをハードコーディングしていますか? – DarkDust

+1

また、Documentsディレクトリを照会する方法が間違っています。 'NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory、NSUserDomainMask、YES);のようなものを使用してください。 NSString * documentsDirectory = [パスobjectAtIndex:0]; ' – DarkDust

+0

ありがとう!!あなたはrigthだ –

答えて

2

[view.layer drawInContext:context]; 

のあなたのラインを変更してみてください〜

[view.layer renderInContext:context];