我正在开发iPad2中的前置摄像头应用程序UIImagePickerController.
当我捕捉到图像时,它显示为从左向右翻转.
我该如何纠正?
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
UIImagePickerController *imgPkr = [[UIImagePickerController alloc] init];
imgPkr.delegate = self;
imgPkr.sourceType = UIImagePickerControllerSourceTypeCamera;
imgPkr.cameraDevice=UIImagePickerControllerCameraDeviceFront;
UIImageView *anImageView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"select%d.png",val]]];
anImageView.frame = CGRectMake(0, 0, anImageView.image.size.width, anImageView.image.size.height);
imgPkr.cameraOverlayView = anImageView;
[theApp.TabViewControllerObject presentModalViewController:imgPkr animated:YES];
[imgPkr release];
}
Run Code Online (Sandbox Code Playgroud) 众所周知,UIImagePickerController在选择后不会返回照片的元数据.但是,应用程序商店中的一些应用程序(Mobile Fotos,PixelPipe)似乎能够读取原始文件和存储在其中的EXIF数据,使应用程序能够从所选照片中提取地理数据.
他们似乎是通过从/ private/var/mobile/Media/DCIM/100APPLE /文件夹中读取原始文件并通过EXIF库运行它来完成此操作.
但是,我无法找到一种方法来匹配从UIImagePickerController返回的照片到磁盘上的文件.我已经探索了文件大小,但原始文件是JPEG,而返回的图像是原始UIImage,因此无法知道所选图像的文件大小.
我正在考虑制作一个哈希表并匹配每个图像的前x个像素.虽然这看起来有点过头了,但可能很慢.
有什么建议?
截图http://i39.tinypic.com/oiermb.png
我正在为UIImagePickerController添加一个自定义叠加层,并且视图底部有一个持久的黑条.这是我实例化控制器的代码.
- (UIImagePickerController *)imagePicker {
if (_imagePicker) {
return _imagePicker;
}
_imagePicker = [[UIImagePickerController alloc] init];
_imagePicker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
_imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
_imagePicker.showsCameraControls = NO;
_imagePicker.wantsFullScreenLayout = YES;
_imagePicker.navigationBarHidden = YES;
_imagePicker.toolbarHidden = YES;
} else {
_imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
return _imagePicker;
}
Run Code Online (Sandbox Code Playgroud)
返回的控制器以模态方式显示,并且当我没有隐藏相机控件时工作正常(即显示全屏).
感谢Ole的建议,我使用了这段代码:
// Resize the camera preview
_imagePicker.cameraViewTransform = CGAffineTransformMakeScale(1.0, 1.03);
Run Code Online (Sandbox Code Playgroud)
高度增加3%就可以了.当我在屏幕底部添加自定义工具栏时,窗口上不再有可见的黑条.
是否有其他人UIImagePickerController在iOS 8中遇到问题?下面的方法在iPad上的iOS 7中运行得非常好,但是当我尝试呈现选择器(最后一行)时,我在XCode 6(Beta 3或4)中运行时会出现以下错误.如果重要,那么sourceType的选择来自于在同一个地方呈现的alertView.
Warning: Attempt to present <UIImagePickerController: 0x7c0ae400> on <CAGUCreateContactViewController: 0x7bf61a00> which is already presenting (null)
Run Code Online (Sandbox Code Playgroud)
打开imagePicker的方法.
- (void)openPhotoPicker:(UIImagePickerControllerSourceType)sourceType
{
if ([UIImagePickerController isSourceTypeAvailable:sourceType]) {
NSArray *availableMediaTypes = [UIImagePickerController availableMediaTypesForSourceType:sourceType];
if ([availableMediaTypes containsObject:(NSString *)kUTTypeImage]) {
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;
imagePickerController.sourceType = sourceType;
imagePickerController.mediaTypes = @[(NSString *)kUTTypeImage];
imagePickerController.delegate = self;
self.imagePickerController = imagePickerController;
if (sourceType == UIImagePickerControllerSourceTypeCamera) {
[self presentViewController:self.imagePickerController animated:YES completion:nil];
} else {
if (self.popoverVC) {
[self.popoverVC dismissPopoverAnimated:YES];
self.popoverVC = …Run Code Online (Sandbox Code Playgroud) 我正在使用Apple的Swift iOS教程.这是一个错误,
无法下标类型'[String:Any]'的值,其索引类型为'UIImagePickerController.InfoKey'
他们定义的功能如下.
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
// The info dictionary may contain multiple representations of the image. You want to use the original.
guard let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage else {
fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
}
// Set photoImageView to display the selected image.
photoImageView.image = selectedImage
// Dismiss the picker.
dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Xcode Version 10.0 beta 3,其中包括Swift …
如何UIImageView在相机预览中添加叠加()并处理此操作?
我之前尝试这样做(例如使用UIImagePickerController并将图像添加为子视图)失败了.
我正在努力了解它是如何工作的,但对我来说这很难.=)我有1个视图,有一个按钮和一个小的ImageView区域可供预览.该按钮触发imagepickercontroller,UIView将显示选中的图像.没有错误,但图像未显示在UIImageView区域中.
var imagePicker = UIImagePickerController()
@IBOutlet var imagePreview : UIImageView
@IBAction func AddImageButton(sender : AnyObject) {
imagePicker.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
imagePicker.delegate = self
self.presentModalViewController(imagePicker, animated: true)
}
func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info:NSDictionary!) {
var tempImage:UIImage = info[UIImagePickerControllerOriginalImage] as UIImage
imagePreview.image = tempImage
self.dismissModalViewControllerAnimated(true)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController!) {
self.dismissModalViewControllerAnimated(true)
}
Run Code Online (Sandbox Code Playgroud) 我的应用程序使用相机,我想在相机预览中添加叠加.例如,我想在使用相机时使用相框,我也想为相机操作添加自定义条.请帮我做同样的事.
"移动和缩放屏幕"如何确定其裁剪框的尺寸?
基本上我想为"CropRect"设置固定的宽度和高度,让用户根据需要移动和缩放他的图像以适应该框.
有谁知道如何做到这一点?(或者甚至可以使用UIImagePickerController)
谢谢!
我有一个UIImagePicker适用于一种UIImagePickerControllerSourceTypePhotoLibrary,但是当我使用UIImagePickerControllerSourceTypeCamera时,编辑框不能从图像的中心移动.因此,如果图像高于宽度,则用户无法将编辑框移动到图像的顶部正方形.
任何人都知道为什么会这样吗?它仅在源来自摄像机而不是库时才会发生.
编辑:一些代码!!!
if (actionSheet.tag == 2) {
if (buttonIndex == 0) { // Camera
// Check for camera
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == YES) {
// Create image picker controller
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
// Set source to the camera
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.allowsEditing = YES;
// Delegate is self
imagePicker.delegate = self;
// Show image picker
[self presentViewController:imagePicker
animated:YES
completion:^(void) {
}];
}
}
else if (buttonIndex == 1) { // Photo Library
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary] == …Run Code Online (Sandbox Code Playgroud) ios ×7
iphone ×5
swift ×3
camera ×2
cocoa-touch ×2
ipad ×2
objective-c ×2
crop ×1
custom-view ×1
exif ×1
gps ×1
ios8 ×1
uiimageview ×1