2016-03-20 23 views
0

これは私のジレンマです。私はQRスキャナーを製作し、QRコードの左上の色付き部分をそれ自身のイメージに切り抜いて処理する必要があります。 enter image description hereUIImageの作物領域、サブビューレターあり

青いバウンディングボックスはself.viewのサブビューで、赤いバウンディングボックスは青いバウンディングボックスのサブビューです。 AVCaptureStillImageOutputを使って画像を生成するImコードの下..

[_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]; 
}]; 

Idは本当に私は日のためにそれをしてきたとしてこれにどのような援助を感謝し、私の知恵の最後にしています。ありがとう!

+0

あなたが希望CGRectとのUIViewのスナップショットを作成することができます。 –

+0

@TejaNandamuri必要なrectは、赤い枠線付き境界ボックスのrectです。どのように私はそれについて行くだろうか?..私はどのようにスクリーンショットとして画像に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あなたの立方体フレーム、supperあなたのイメージビューフレームフレーム、 –

関連する問題