2013-06-28 74 views
3

所以我正在做的是創建一個自定義圖像選擇器,我有一個320×320 AVCaptureVideoPreviewLayer,我正在使用,當我拍照時,我想獲得一個實際上是什麼的UIImage在預覽圖層中可見,但是當我使用captureStillImageAsynchronouslyFromConnection: completionHandler:拍攝照片時得到的圖像是2448 X 3264尺寸的普通圖像。那麼,將圖像變成320 x 320方形圖像的最佳方式是預覽層沒有搞砸了?有沒有一個正確的方法來做到這一點?另外,如果這是相關的,我正在使用AVLayerVideoGravityResizeAspectFill作爲AVCaptureVideoPreviewLayervideoGravity財產。從方形獲取圖片AVCaptureVideoPreviewLayer

+0

嗨,你有你的問題的答案?我們完全一樣。 – Ali

回答

0

您是否試圖變換圖像?

嘗試使用CGAffineTransformMakeScale(<#sx: CGFloat#>, <#sy: CGFloat#>)縮小圖像。變換可以做魔術!如果你曾經使用線性代數,你應該回想一下你的標準變換矩陣。我沒有使用這個圖像,所以我不確定這是否可以很好地處理像素。

,你也可以嘗試

// grab the original image 
    UIImage *originalImage = [UIImage imageNamed:@"myImage.png"]; 
    // scaling set to 2.0 makes the image 1/2 the size. 
    UIImage *scaledImage = 
       [UIImage imageWithCGImage:[originalImage CGImage] 
           scale:(originalImage.scale * 2.0) 
           orientation:(originalImage.imageOrientation)]; 

在那裏你可以改變比例因子