代码之家  ›  专栏  ›  技术社区  ›  sylvanaar

如何保存在cgcontext中绘制的内容

  •  8
  • sylvanaar  · 技术社区  · 14 年前

    我画了一个uiview的cgcontext。

    - (void)drawRect:(CGRect)rect { 
        [self drawInContext:UIGraphicsGetCurrentContext()]  
    }
    

    我想把我画的保存到PNG文件中。

    有简单的解决办法吗?

    编辑:根据下面的建议-以下是我目前为止的情况…

    -(void)createImage {
        NSString* outFile = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/image.png"];
        DLog(@"creating image file at %@", outFile);
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
        NSData *imageData = UIImagePNGRepresentation(image);
        [imageData writeToFile:outFile 
                    atomically:NO];
    }
    
    - (void)drawRect:(CGRect)rect { 
        [self drawInContext:UIGraphicsGetCurrentContext()]; 
        [self createImage];
    }
    
    3 回复  |  直到 11 年前
        1
  •  6
  •   indragie    14 年前
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    NSData *imageData = UIImagePNGRepresentation(image);
    [imageData writeToFile:@"image.png"];
    
        2
  •  6
  •   Shawn Chin    11 年前
    CGImageRef imgRef = CGBitmapContextCreateImage(context);
    
    UIImage* img = [UIImage imageWithCGImage:imgRef];
    
    CGImageRelease(imgRef);
    
        3
  •  1
  •   kennytm    14 年前

    呼叫 UIGraphicsGetImageFromCurrentImageContext 得到一个uiimage。
    然后打电话 UIImagePNGRepresentation 获取用png编码的uiimage的nsdata。
    最后,打电话 -writeToFile:… 以保存nsdata。