Dav*_*vid 10 iphone uiimagepickercontroller ios4 ios
我想拍摄A4纸的照片.重要的是,我希望文本可读,但我不希望像2592x1936像素或3264x2448像素这样的分辨率的图像太大.此外,我认为捕获后重新缩放照片需要额外的时间,所以我也想避免这种情况.
我们可以选择以下品质:
UIImagePickerControllerQualityTypeHigh = 0
UIImagePickerControllerQualityTypeMedium = 1 default value
UIImagePickerControllerQualityTypeLow = 2
UIImagePickerControllerQualityType640x480 = 3,
UIImagePickerControllerQualityTypeIFrame1280x720 = 4,
UIImagePickerControllerQualityTypeIFrame960x540 = 5
Run Code Online (Sandbox Code Playgroud)
如果我们使用的话AVFoundation,我们可以从这个漂亮的表中选择分辨率(标题为"捕捉静止图像").
但是有没有类似的表格UIImagePickerController,例如UIImagePickerControllerQualityTypeHigh在iPhone 3gs上等于1920x1080?
The*_*ter 18
UIImagepickerController质量用于视频录制(用于UIImagepickerController属性"videoQuality").
我想如果你想指定确切的照片分辨率应该是什么,你应该使用AV Foundation框架而不是UIImagepickerController.或者如你所说,之后转换图片.
之后调整大小(在此处找到):
// ==============================================================
// resizedImage
// ==============================================================
// Return a scaled down copy of the image.
UIImage* resizedImage(UIImage *inImage, CGRect thumbRect)
{
CGImageRef imageRef = [inImage CGImage];
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
// There's a wierdness with kCGImageAlphaNone and CGBitmapContextCreate
// see Supported Pixel Formats in the Quartz 2D Programming Guide
// Creating a Bitmap Graphics Context section
// only RGB 8 bit images with alpha of kCGImageAlphaNoneSkipFirst, kCGImageAlphaNoneSkipLast, kCGImageAlphaPremultipliedFirst,
// and kCGImageAlphaPremultipliedLast, with a few other oddball image kinds are supported
// The images on input here are likely to be png or jpeg files
if (alphaInfo == kCGImageAlphaNone)
alphaInfo = kCGImageAlphaNoneSkipLast;
// Build a bitmap context that's the size of the thumbRect
CGContextRef bitmap = CGBitmapContextCreate(
NULL,
thumbRect.size.width, // width
thumbRect.size.height, // height
CGImageGetBitsPerComponent(imageRef), // really needs to always be 8
4 * thumbRect.size.width, // rowbytes
CGImageGetColorSpace(imageRef),
alphaInfo
);
// Draw into the context, this scales the image
CGContextDrawImage(bitmap, thumbRect, imageRef);
// Get an image from the context and a UIImage
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
UIImage* result = [UIImage imageWithCGImage:ref];
CGContextRelease(bitmap); // ok if NULL
CGImageRelease(ref);
return result;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
总之一句:不.
没有"类似的表",因为你误解如何的喜欢UIImagePickerControllerQualityTypeHigh被使用UIImagePickerController.
如果你正在拍摄静止图像,UIImagePickerController你将获得相关设备的默认(即最高)质量 - 从8 MP到iPhone 4s到<1 MP与iPod touch或iPad 2).
但是,使用AVFoundation,您可以选择,这要归功于您所引用的会话预设.
但与这些AVFoundation会话预设不同,这些UIImagePickerController UIImagePickerControllerQualityType选项仅适用于动态视频,而不适用于静态图像捕捉.
因此,您可以选择使用AVFoundation来控制捕获大小,或者在保存之前重新调整全尺寸图像的大小; 但UIImagePickerController我不敢做你想做的事.
| 归档时间: |
|
| 查看次数: |
16932 次 |
| 最近记录: |