[英]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.