我在尝试捕获屏幕的一部分时收到错误“程序接收信号:”SIGABRT“

时间:2012-04-21 05:43:00

标签: iphone objective-c

我正在开展一个项目,其中必须将屏幕的特定部分保存为图像。

我创建了一个名为customView的视图。我在此视图中放置了图像视图和标签,并使用以下代码捕获图像。

-(IBAction)saveButtonClicked
{
    CGSize screenSize = [[UIScreen mainScreen] applicationFrame].size;
    CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef ctx = CGBitmapContextCreate(nil, screenSize.width, screenSize.height, 8, 4*(int)screenSize.width, colorSpaceRef,
                                         kCGImageAlphaPremultipliedLast);
    CGContextTranslateCTM(ctx, 0.0, screenSize.height);
    CGContextScaleCTM(ctx, 1.0, -1.0);

    [(CALayer*)self.view.layer renderInContext:ctx];

    CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
    UIImage *image = [UIImage imageWithCGImage:cgImage];
    CGImageRelease(cgImage);
    CGContextRelease(ctx);  
    [UIImageJPEGRepresentation(image, 1.0) writeToFile:filePath atomically:NO];
}

filePath 是/ Users / mac / Library / Application Support / iPhone Simulator / 3.2 / Applications / 388C6FB6-9D76-4507-9D3A-03D615BB63AD / Documents / savedImage.png。我使用以下代码

创建了filepath
NSArray *documentsArray=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docPath=[documentsArray objectAtIndex:0];
filePath = [docPath stringByAppendingPathComponent:@"savedImage.png"];

有谁能告诉我如何解决这个问题?

0 个答案:

没有答案