簡體   English   中英

如何使用8MP相機在iPhone設備中捕獲5MP圖像?

[英]How to capture 5MP Image in iPhone devices with 8MP camera?

我想在最大圖像傳感器捕獲分辨率為8 MP的iOS設備中捕獲5 MP分辨率的圖像。

Avfoundations AVCaptureSessionPresetPhoto中提供的預設提供-3264x2448-8 MP分辨率VCaptureSessionPresetHigh提供-1920x1080-2 MP分辨率

有什么方法/解決方法可以直接捕獲5MP,而不是捕獲8MP然后縮減規模?

iOS提供的Camera輸出分辨率非常有限。

您正確提到最大大小為8MP,下一個預設值降至1080p或〜2MP。 似乎期望按照應用程序的要求縮小/裁剪圖像,但是SDK沒有提供單個API來獲得所需的分辨率或輸出圖像。

希望這可以幫助。

AVCaptureSessionPreset僅提供常量解析度(您可以參閱API參考)。 如果要以自定義分辨率保存圖像,可以在此處找到以自定義分辨率保存圖像

為什么不使用8MP相機捕獲圖像,然后在保存圖像之前使用以下方法將其大小更改為5MP分辨率

+ (UIImage*)imageWithImage:(UIImage*)image
          scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}

在保存捕獲的圖像之前,請在imagePickerDidFinishMediaWithInfoMethod中調用上述方法。 上面的方法將返回一個大小已更改的Uiimage(您必須提供為CGSize)。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
  UIImage * tempImage =[info objectForKey:UIImagePickerControllerOriginalImage];
  CGSize mSize;
   mSize     =  CGSizeMake(your width and height as per 5MP mode);
   tempImage = [ViewController  imageWithImage:tempImage scaledToSize:mSize];
  // use this temp img as it would be in dimensions of 5MP image.
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM