我正在使用带有剪切的透明图像,以便用户插入/拍摄自己的图像.出于某种原因,在使用UIImagePickerControllerEditedImage
和裁剪用户拍摄的照片时,图像不会像编辑时那样保存; 比如看照片.
我的问题是图像没有准确保存照片的编辑方式.(即:裁剪/调整大小).
-(void)choosePhotoDialog:(id)sender
{
OverlayView * overlay = [[OverlayView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH_IPHONE, SCREEN_HEIGTH_IPHONE) andPhoto:[dict objectForKey:@"imageUrl"]];
[overlay setUserInteractionEnabled: NO];
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
[picker setSourceType: UIImagePickerControllerSourceTypeCamera];
[picker setDelegate: self];
[picker setAllowsImageEditing: YES];
[picker setShowsCameraControls: YES];
[picker setNavigationBarHidden: YES];
[picker setWantsFullScreenLayout: YES];
[picker setCameraOverlayView: overlay];
[self presentModalViewController:picker animated:YES];
[picker release];
}
Run Code Online (Sandbox Code Playgroud)
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
SDWebImageManager * manager = [SDWebImageManager sharedManager];
UIImage * cachedImage = [manager imageWithURL: [NSURL URLWithString: …
Run Code Online (Sandbox Code Playgroud) 我正在努力解决问题.我正在捕捉一个视频,我把UIImageView和UIImage放在其中作为UIImagePicker CameraOverLay.因此,当用户启动相机以捕获视频时,他可以在相机上看到叠加.当用户停止捕获并且正在移动到UIImagePicker的"取消或重新启动"屏幕时,cameraOverlayView仍然可见.
有关如何在"重拍或取消"屏幕中不显示叠加层的任何想法?
我知道这已被问了很多次,但我找不到答案.
我有一个应用程序,用于UIImagePickerController
拍照.问题是我只想要相机选项可用,我知道我需要隐藏标准控件:
cameraUI.showsCameraControls=NO;
Run Code Online (Sandbox Code Playgroud)
并使用a cameraOverlayView
来提供我自己的控件.我已经看过Apple的PhotoPicker
项目,我最初的问题是如何将一个Overlay
对象放到我的故事板上?我在图书馆找不到这样的对象.任何帮助感激不尽.
我想用ffmpeg记录我的桌面以及我的相机作为桌面上的叠加层.
所以基本上我将有两个需要记录的输入源
$ ffmpeg -f avfoundation -list_devices true -i ''
[AVFoundation input device @ 0x7fded1c223e0] AVFoundation video devices:
[AVFoundation input device @ 0x7fded1c223e0] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7fded1c223e0] [1] Capture screen 0
[AVFoundation input device @ 0x7fded1c223e0] AVFoundation audio devices:
[AVFoundation input device @ 0x7fded1c223e0] [0] Built-in Microphone
Run Code Online (Sandbox Code Playgroud)
从上面,我需要[0] FaceTime高清摄像机作为叠加,[1]捕获屏幕0作为主要视频.
这甚至可能吗?
更新(2015-10-06):
我从ffscreencast找到了以下命令:
ffmpeg \
-f avfoundation -i "1" \
-f avfoundation -r 30 -video_size 640x480 -i "0" \
-c:v libx264 -crf 0 -preset …
Run Code Online (Sandbox Code Playgroud) 在我的iPhone应用程序中,我有一个用于拍照的UIImagePickerController.我隐藏了所有默认的相机控件,并在UIImagePickerController中添加了带有两个按钮的UIView作为CameraOverLayView.我的应用程序始终只在横向模式下运行.相机也仅启动横向模式.现在,CameraOverlayView仅在Landscape左侧不变为Landscape to Right.当设备方向改变时,如何左右更改CameraOverlayView LandscapeMode?请帮我修理一下.这是我的应用程序中的主要问题.此代码在横向模式下保持Overlayview为Left
imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 117.81);
Run Code Online (Sandbox Code Playgroud)
并且此代码在横向模式下保持cameraoverlayview权限GAffineTransform transform = self.view.transform;
transform = CGAffineTransformRotate(transform, (M_PI / 2.0));
imgpicker.cameraOverlayView.transform = transform;
Run Code Online (Sandbox Code Playgroud)
我在这样的UIInterfaceOrientation方法中使用了这些代码,
UIInterfaceOrientation orientation= [[UIApplication sharedApplication] statusBarOrientation];
if (orientation == UIInterfaceOrientationLandscapeLeft)
{
imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 117.81);
}
else if (orientation == UIInterfaceOrientationLandscapeRight)
{
CGAffineTransform transform = self.view.transform;
transform = CGAffineTransformRotate(transform, (M_PI / 2.0));
imgpicker.cameraOverlayView.transform = transform;
}
Run Code Online (Sandbox Code Playgroud)
但是,这些并没有帮助我.当我左右旋转设备方向横向时,相机覆盖视图不会改变.你能解决我的问题吗?谢谢.
在拍摄照片后进行编辑(移动和缩放)在我的应用程序中使用此行正常工作:
[imagePicker setAllowsEditing:YES];
Run Code Online (Sandbox Code Playgroud)
但如果我也使用cameraOverlayView,则编辑模式不再起作用.屏幕出现,但平移和捏动手势不会发生任何事情.
我正在使用你的普通图像选择器控制器:
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
Run Code Online (Sandbox Code Playgroud)
我添加了一个相机覆盖视图,从自定义视图控制器的视图创建:
CameraOverlayViewController *overlayController = [[CameraOverlayViewController alloc] init];
UIView *overlayView = overlayController.view;
[imagePicker setCameraOverlayView:overlayView];
Run Code Online (Sandbox Code Playgroud)
在IB中,该视图被设置为允许用户交互和多次触摸,这允许其在拍摄照片时进行缩放和聚焦.但是一旦拍摄照片并进入编辑模式,您就无法平移或捏合移动或缩放照片.
我错过了什么?
我正在寻找以下问题的程序化解决方案:我想在相机(iOS)上绘制自定义叠加层.我希望它在摄像机输出视图的垂直中心.我已经完成了相对于屏幕中心绘制我的自定义视图,但没有绘制到相机图片.
要做到这一点,我需要得到顶部黑色条的大小.我怎么才能得到它?
顶部和底部条的大小不相等,这就是为什么我得到的图片有这个恼人的y偏移到底部.
注意结果pic的偏移量:
我试图在UIImagePicker中覆盖视频捕获会话的视图.叠加层工作正常,但当应用程序进入用户可以"重拍","播放"或"使用视频"的屏幕时,应用程序崩溃并提供错误:
2017-04-16 21:33:04.129212-0400 ChugMug [429:59833] libMobileGestalt MobileGestalt.c:2690:statfs(/ mnt4):没有这样的文件或目录2017-04-16 21:33:04.129871-0400 ChugMug [ 429:59833] libMobileGestalt MobileGestalt.c:2587:SInt64 NANDSize():找不到disk0的kIOMediaSizeKey!2017-04-16 21:33:09.352085-0400 ChugMug [429:60065] [MediaRemote]错误操作需要注册客户端回调.请求回放队列
代码非常简单,当叠加层被注释掉时,视频预览屏幕和按钮工作正常,但是当叠加层出现时,应用程序会冻结在以下屏幕:
以下是相机和叠加层的代码:
func startMediaBrowserFromViewController(viewController: UIViewController, usingDelegate delegate: UINavigationControllerDelegate & UIImagePickerControllerDelegate) -> Bool {
// 1
if UIImagePickerController.isSourceTypeAvailable(.savedPhotosAlbum) == false {
return false
}
// 2
let mediaUI = UIImagePickerController()
mediaUI.sourceType = .savedPhotosAlbum
mediaUI.mediaTypes = [kUTTypeMovie as NSString as String]
mediaUI.allowsEditing = true
mediaUI.delegate = delegate
// 3
present(mediaUI, animated: true, completion: nil)
return true
}
func startCameraFromViewController(viewController: UIViewController, withDelegate delegate: UIImagePickerControllerDelegate …
Run Code Online (Sandbox Code Playgroud) 我发现默认情况下,当显示UIImagePickerController
with type时camera
,屏幕底部会出现一个黑条。
我想cameraOverlayView
在顶部完全显示一个自定义项,并与此类黑色底栏的尺寸相匹配,但我找不到获取其高度的方法。
编辑:或者,我如何计算cameraViewTransform
保持相机视图的纵横比,这样黑色底部将具有我可以选择的一定高度?
编辑 2:所有设备的黑色底部高度相同吗?
我正在开发一个反应本机应用程序,我会拍一些照片。
我的相机上需要有一个网格,当用户拍照时,我的应用程序会将图像和网格保存在一起。
有谁知道我如何解决这个问题?
谢谢
下面的这个链接正好显示了我需要的
https://pt.stackoverflow.com/questions/362327/react-native-overlay-em-camera
我正在开发类似于Instagram iOS应用程序的应用程序.Instagram有自定义相机预览.我想开发类似的东西,问题是 - 为此目的更好地使用什么 - 具有自定义cameraOverlayView属性的UIImagePickerController还是应该使用AVCaptureSession?也许有人有这样的经历,可以给我一个建议.将不胜感激.
preview uiimagepickercontroller ios avcapturesession camera-overlay
我想补充一个cameraOverlayView
上一个UIImagePickerController
,但我想覆盖到覆盖显示了将被相机捕捉,而不是"取消"按钮在屏幕的只是一部分,拍照按钮,闪光灯设置,或类似的东西.如何动态确定UIImageView
叠加层的帧应该是什么?
我附上了一张图片来说明我正在讨论的部分.
objective-c uiimageview uiimagepickercontroller ios camera-overlay
camera-overlay ×12
ios ×10
objective-c ×3
camera ×2
android ×1
avfoundation ×1
cgimage ×1
editing ×1
ffmpeg ×1
iphone ×1
landscape ×1
macos ×1
orientation ×1
preview ×1
react-native ×1
swift ×1
uiimage ×1
uiimageview ×1