2016-03-20 53 views
0

這是我的兩難境地。我建立了QR掃描儀,並需要將QR碼左上角的彩色部分裁剪到自己的圖像中以供進一步處理。 enter image description hereUIImage的作物區域與子視圖

藍色邊界框是self.view的子視圖,紅色邊界框是藍色邊界框的子視圖。我使用AVCaptureStillImageOutput來生成圖像;下面的代碼..

[_imageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error) { 

    NSData *jpegData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer]; 
    UIImage *takenImage = [UIImage imageWithData:jpegData]; 

    //crop and process takenImage 
    // tried utilizing convertRect:toView: and crop result is completely wrong. 
    CGRect redFrame = [_colorBox convertRect:_colorBox.bounds toView:self.view]; 
}]; 

編號真的很感激任何這方面的援助,我已經在好幾天,和我在我束手無策。謝謝!

+0

你可以快照與所需的CGRect UIView的。 –

+0

@TejaNandamuri所期望的是紅色邊框邊界框的邊界。我將如何去解決這個問題?..我知道如何將UIView變成圖片作爲截圖..但其餘的..? – skram

+0

http://stackoverflow.com/questions/2214957/how-do-i-take-a-screen-shot-of-a-uiview @skram –

回答

0
CGSize screenS = supperFrame.size; 

CGFloat delX = image.size.width/screenS.width; 
CGFloat delY = image.size.height/screenS.height; 

CGRect sourceRect = CGRectMake(frame.origin.x * delX, frame.origin.y * delY, frame.size.width * delX, frame.size.height * delY); 
CGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage, sourceRect); 


UIImage *cropImage = [UIImage imageWithCGImage:imageRef]; 
CGImageRelease(imageRef); 
return cropImage; 
+0

你能將你的解決方案應用於我的示例代碼嗎?我試圖實現它,並沒有得到期望的結果。謝謝! @ khoren-asatryan – skram

0
- (UIImage *)imageAtFrameImage:(UIImage *)image creopFrame:(CGRect)creopFrame supperFrame:(CGRect)supperFrame { 

    CGSize screenS = supperFrame.size; 

    CGFloat delX = image.size.width/screenS.width; 
    CGFloat delY = image.size.height/screenS.height; 

    CGRect sourceRect = CGRectMake(creopFrame.origin.x * delX, creopFrame.origin.y * delY, creopFrame.size.width * delX, creopFrame.size.height * delY); 
    CGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage, sourceRect); 


    UIImage *cropImage = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 
    return cropImage; 
} 
+0

creopFrame你的幼仔框架,supperFrame你的圖像視圖框架, –

相關問題