2013-02-26 57 views
0

我有一個可以移動/縮放的UIImageViewself.imageForEditing)。在這個圖像視圖的頂部,我有一個帶有切口的覆蓋層,它是靜態的,不能移動。在按下按鈕時,我需要保存底層圖像的一部分,這些圖像在洞中可見。我目前的嘗試:如何使用掩碼保存UIImage

- (IBAction)saveImage 
{ 

    UIImage *image = self.imageForEditing.image; 

    CGImageRef originalMask = [UIImage imageNamed:@"picOverlay"].CGImage; 
    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(originalMask), 
             CGImageGetHeight(originalMask), 
             CGImageGetBitsPerComponent(originalMask), 
             CGImageGetBitsPerPixel(originalMask), 
             CGImageGetBytesPerRow(originalMask), 
             CGImageGetDataProvider(originalMask), nil, YES); 

    CGImageRef maskedImageRef = CGImageCreateWithMask(image.CGImage, mask); 

    UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef scale:image.scale orientation:image.imageOrientation]; 

    CGImageRelease(mask); 
    CGImageRelease(maskedImageRef); 

    UIImageView *test = [[UIImageView alloc] initWithImage:maskedImage]; 
    [self.view addSubview:test]; 
} 

作爲一個測試,我只是試圖添加新創建的圖像到屏幕的左上角。理論上它應該是一個小的圓形圖像(通過覆蓋圖可見的部分)。但是我正在重新創建整個圖像。我究竟做錯了什麼?我怎麼能說明self.imageForEditing可以移動?

回答