Tag: 相机

iPhone:相机预览覆盖

如何添加覆盖( UIImageView )的相机预览和处理触摸呢? 我以前的尝试做到这一点(例如使用UIImagePickerController和添加图像作为子视图)失败。

我在哪里可以得到Android相机应用程序的源代码?

我指的是已经安装在我的G1上的相机应用程序,而不是相机API源代码。 我如何获得源代码?

如何设置相机预览大小平方纵横比在平方SurfaceView(如Instagram)

我试图开发自己的相机活动,但我有一个问题,我无法解决… 我想要的,是一个非常类似于Instagram的相框,这是我得到: 当我应该得到这样的东西: 和… 当我应该得到像这样的东西: 我想我只是使用SurfaceView和Camera预览 Camera.Parameters parameters = camera.getParameters(); camera.setDisplayOrientation(90); 和自定义SurfaceView: public class SquaredSurfaceView extends SurfaceView { private int width; private int height; public SquaredSurfaceView(Context context) { super(context); } public SquaredSurfaceView(Context context, AttributeSet attrs) { super(context, attrs); } public SquaredSurfaceView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int […]

iPhone AVFoundation摄像头方向

我一直在撕掉我的头发,试图让AVFoundation相机以正确的方向(即设备方向)捕捉图片,但我无法使其工作。 我看了教程,我看了WWDC演示文稿,并且下载了WWDC示例程序,但即使这样做也不行。 我的应用程序的代码是… AVCaptureConnection *videoConnection = [CameraVC connectionWithMediaType:AVMediaTypeVideo fromConnections:[imageCaptureOutput connections]]; if ([videoConnection isVideoOrientationSupported]) { [videoConnection setVideoOrientation:[UIApplication sharedApplication].statusBarOrientation]; } [imageCaptureOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) { if (imageDataSampleBuffer != NULL) { //NSLog(@"%d", screenOrientation); //CMSetAttachment(imageDataSampleBuffer, kCGImagePropertyOrientation, [NSString stringWithFormat:@"%d", screenOrientation], 0); NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer]; UIImage *image = [[UIImage alloc] initWithData:imageData]; [self processImage:image]; } }]; (processImage使用与WWDC代码相同的writeImage …方法) […]

iOS恢复相机投影

我正在尝试估算与空间QR码相关的设备位置。 我使用的是iOS11中引入的ARKit和Vision框架,但这个问题的答案可能不依赖于它们。 使用Vision框架,我可以获得在相机框架中绑定QR码的矩形。 我想匹配这个矩形的设备翻译和旋转所需的QR码从一个标准的位置转换。 例如,如果我观察框架: * * B C A D * * 而如果我离QR码1m远,就以它为中心,假设QR码的边长为10cm,我会看到: * * A0 B0 D0 C0 * * 这两个帧之间的设备转换是什么? 我知道一个确切的结果可能是不可能的,因为也许观察到的QR码是非平面的,我们试图估计一个不完全的东西的仿射变换。 我猜sceneView.pointOfView?.camera?.projectionTransform比sceneView.pointOfView?.camera?.projectionTransform?.camera.projectionMatrix更有帮助,因为后面已经考虑到了我不感兴趣的ARKit的变换对于这个问题。 我将如何填写 func get transform( qrCodeRectangle: VNBarcodeObservation, cameraTransform: SCNMatrix4) { // qrCodeRectangle.topLeft etc is the position in [0, 1] * [0, 1] of A0 // expected real world position of the […]

有没有办法要求用户访问相机访问后,他们已经否认了iOS 8?

我正在使用这个代码,但不幸的是它不工作。 在用户拒绝摄像头访问后,我想要求他们在下次尝试加载摄像头时再次使用摄像头(本例中是使用摄像头视图的条形码扫描器)。 我总是得到AVAuthorizationStatusDenied ,然后granted总是自动返回NO即使我再次要求代码。 我的许多用户正在给我发电子邮件说:“当我尝试条形码扫描时,我的屏幕是黑色的”,这是因为他们由于某种原因拒绝了相机访问。 我希望能够再次提醒他们,因为很可能拒绝是一个错误。 有没有可能的方法来做到这一点? AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; if(authStatus == AVAuthorizationStatusAuthorized) { NSLog(@"%@", @"You have camera access"); } else if(authStatus == AVAuthorizationStatusDenied) { NSLog(@"%@", @"Denied camera access"); [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { if(granted){ NSLog(@"Granted access to %@", AVMediaTypeVideo); } else { NSLog(@"Not granted access to %@", AVMediaTypeVideo); } }]; } else […]

SurfaceHoldercallback如何与Activity生命周期相关?

我一直在试图实现一个需要在表面上预览相机的应用程序。 正如我所看到的,活动和表面生命周期都包含以下几个状态: 当我第一次启动我的Activity: onResume()->onSurfaceCreated()->onSurfaceChanged() 当我离开我的Activity: onPause()->onSurfaceDestroyed() 在这个scheme中,我可以在onPause/onResume和onSurfaceCreated()/onSurfaceDestroyed()做相应的调用,如打开/释放摄像头和启动/停止预览。 它工作正常,除非我locking屏幕。 当我启动应用程序,然后locking屏幕,稍后解锁,我看到: onPause() – 在屏幕locking后没有其他任何事情 – 然后解锁后的onResume()之后没有表面callback。 实际上,在按下电源button并且屏幕打开之后调用onResume() ,但locking屏幕仍然处于活动状态,所以在活动变得可见之前。 通过这个scheme,解锁后我得到一个黑屏,并且不会调用表面callback。 这是一个代码片段,不涉及实际的相机工作,但SurfaceHoldercallback。 即使在手机上有这个代码,上面的问题也会被重现(当您按下“返回”button时,以正常顺序调用callback,但当您locking屏幕时,callback会丢失): class Preview extends SurfaceView implements SurfaceHolder.Callback { private static final String tag= "Preview"; public Preview(Context context) { super(context); Log.d(tag, "Preview()"); SurfaceHolder holder = getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { Log.d(tag, "surfaceCreated"); } public […]

单一的意图,让用户拍照或从Android中的图库中挑选图像

我正在开发一个Android 2.1以上的应用程序。 我想让我的用户在我的应用程序中select一个个人资料图片(我没有使用联系人框架)。 理想的解决scheme是激发使用户从图库中select图像的意图,但是如果没有合适的图像,则使用相机拍照(反之亦然,即允许用户拍照,但如果他们知道他们已经有一个合适的形象,让他们进入画廊,并select图像)。 目前我可以做一个或另一个,但不是两个。 如果我使用MediaStore.ACTION_IMAGE_CAPTURE直接进入相机模式,则没有选项可以放入相册。 如果我使用Intent.ACTION_PICK直接进入画廊,那么我可以select一个图像,但是如果单击相机button(在画廊的右上angular),则会启动新的相机意图。 所以,所拍摄的任何图片都不会直接返回给我的应用程序。 (当然,你可以按下后退button回到画廊,从那里select图像,但这是一个额外的不必要的步骤,并不直观)。 那么有没有办法将两者结合起来,还是我将不得不提供一个菜单来在我的应用程序中做一个或另一个? 似乎这将是一个常见的用例…当然,我失去了一些东西?

在iOS 8中显示相机权限对话框

当我的应用程序尝试在iOS 8上第一次访问摄像头时,会向用户展示摄像头权限对话框,就像在iOS 7中用于麦克风访问的麦克风一样。 在iOS 7中,可以事先调用麦克风权限对话框,并查看权限是否被授予(例如,请参阅此问题 )。 有没有类似的方式来调用iOS 8的摄像头权限对话框? 话筒和摄像头访问权限可以组合在一起吗?

NSCameraUsageDescription在iOS 10.0运行时崩溃?

使用iOS 10.0最后testing版。 我曾尝试使用相机扫描我的应用程序中的条形码,并与此运行时错误崩溃。 这个应用程序已经崩溃,因为它试图访问隐私敏感的数据没有使用说明。 应用程序的Info.plist必须包含一个带有string值的NSCameraUsageDescription项,向用户解释应用程序如何使用此数据。 把这个钥匙插入plist,但它仍然坠毁?