标签: camera

如何在Android上使用Camera的SurfaceView上绘制叠加层?

我有一个简单的程序,将预览绘制Camera成一个SurfaceView.我正在尝试做的是使用该onPreviewFrame方法,每次将新帧绘制到SurfaceViewinvalidate方法时调用该onDraw方法,以便执行应该调用该方法的方法.事实上,该onDraw方法正在被调用,但没有任何东西被打印(我猜相机预览正在覆盖我正在尝试绘制的文本).

这是SurfaceView我所拥有的子类的简化版本:

public class Superficie extends SurfaceView implements SurfaceHolder.Callback {
 SurfaceHolder mHolder;
 public Camera camera;
 Superficie(Context context) {
  super(context);
  mHolder = getHolder();
  mHolder.addCallback(this);
  mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
 }
 public void surfaceCreated(final SurfaceHolder holder) {
  camera = Camera.open();
  try {
   camera.setPreviewDisplay(holder);
   camera.setPreviewCallback(new PreviewCallback() {
    public void onPreviewFrame(byte[] data, Camera arg1) {
     invalidar();
    }
   });
  } catch (IOException e) {}
 }
 public void invalidar(){
  invalidate();
 }
 public void surfaceChanged(SurfaceHolder …
Run Code Online (Sandbox Code Playgroud)

camera android surfaceview

69
推荐指数
2
解决办法
10万
查看次数

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

我正在为Android 2.1开发一个应用程序.我想让我的用户在我的应用程序中选择个人资料图片(我没有使用联系人框架).

理想的解决方案是启动一个使用户能够从图库中选择图像的意图,但如果没有合适的图像,则使用相机拍照(反之亦然,即允许用户拍照,但如果他们知道他们已经有了合适的图像,让他们进入画廊并选择所述图像).

目前我可以做其中一个但不能两个都做.

如果我使用MediaStore.ACTION_IMAGE_CAPTURE直接进入相机模式,则无法进入图库.

如果我使用Intent.ACTION_PICK直接进入图库,那么我可以选择一个图像,但是如果我单击相机按钮(在图库的右上角),则会触发新的相机意图.因此,拍摄的任何照片都不会直接返回给我的应用程序.(当然你可以按后退按钮退回到图库并从那里选择图像,但这是一个额外的不必要的步骤,并不是很直观).

那么有没有办法将两者结合起来,或者我是否必须提供一个菜单来从我的应用程序中做一个或另一个?看起来这将是一个常见的用例...当然我错过了什么?

camera android image gallery android-intent

66
推荐指数
3
解决办法
4万
查看次数

在release()之后调用异常无法用android摄像头恢复的方法

在开发相机应用程序时,我遇到了一个异常,只有当我切换到其他应用程序(onPause()对于我的应用程序)时才会发生.

01-15 17:22:15.017: E/AndroidRuntime(14336): FATAL EXCEPTION: main
01-15 17:22:15.017: E/AndroidRuntime(14336): java.lang.RuntimeException: Method called after release()
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.hardware.Camera.setPreviewDisplay(Native Method)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.hardware.Camera.setPreviewDisplay(Camera.java:357)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at com.sora.cbir.yuki.image.leaf.CameraPreview.surfaceCreated(CameraPreview.java:32)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.SurfaceView.updateWindow(SurfaceView.java:551)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:213)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.View.dispatchWindowVisibilityChanged(View.java:4075)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewRoot.performTraversals(ViewRoot.java:858)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1995)
01-15 17:22:15.017: …
Run Code Online (Sandbox Code Playgroud)

java camera android exception callback

59
推荐指数
4
解决办法
5万
查看次数

Android相机意图:如何获得全尺寸照片?

我正在使用意图启动相机:

Intent cameraIntent = new Intent(
    android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
getParent().startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)

和使用:

Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
photoImage.setImageBitmap(thumbnail);
photoImage.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)

但它只是一个缩略图,我如何获得完整的位图?我知道我可以使用自己的Activity并使用:

Camera.PictureCallback()
Run Code Online (Sandbox Code Playgroud)

但无论如何使用Intent做到了吗?

谢谢!

编辑:

我也尝试过:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Uri uri = data.getData();
    imageView.setImageURI(uri);
}
Run Code Online (Sandbox Code Playgroud)

它适用于从库中选择的照片,但对于相机意图,data.getData()返回null.

camera android bitmap

57
推荐指数
3
解决办法
8万
查看次数

以编程方式在Android上用相机拍照

我用按钮创建了一个应用程序,并为该按钮编写了onClickListener.我已经尝试了几个示例代码示例,但没有一个有效.他们都带来了Android相机应用程序,不拍照.我想要一些代码可以放在我的onClickListener中,所以当我按下屏幕上的按钮时,会拍摄一张照片.

当我在Android活动中按下按钮时,如何让相机拍照?

camera android image

56
推荐指数
3
解决办法
18万
查看次数

有没有办法让用户在iOS上拒绝后才能访问相机?

我正在使用此代码,但遗憾的是它不起作用.

在用户拒绝摄像头访问后,我想让他们在下次尝试加载时再次使用摄像头(在这种情况下,它是使用摄像头视图的条形码扫描仪).我总是得到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 if(authStatus == AVAuthorizationStatusRestricted)
    {
        NSLog(@"%@", @"Restricted, normally won't happen");
    }
    else if(authStatus == AVAuthorizationStatusNotDetermined)
    {
        NSLog(@"%@", @"Camera access not determined. Ask for …
Run Code Online (Sandbox Code Playgroud)

iphone camera objective-c ios

56
推荐指数
2
解决办法
4万
查看次数

iPad删除后记住相机权限 - 如何清除?

我正在尝试重新创建以下代码返回的条件AVAuthorizationStatusNotDetermined:

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
Run Code Online (Sandbox Code Playgroud)

但是,即使在删除并重新安装应用程序后,iPad似乎仍能记住相机权限,因此每次都会返回Authorized或NotAuthorized.知道如何重置权限以便返回NotDetermined吗?

谢谢阅读.

permissions camera ipad ios ios-permissions

54
推荐指数
1
解决办法
1万
查看次数

从Photos.app获取最新图片?

我已经看到其他应用程序可以从照片应用程序中导入最后一张照片以便快速使用,但据我所知,我只知道如何获取A图像而不是最后一张(最近的图像).谁能告诉我如何获取最后一张图片?

camera image photos ios

53
推荐指数
6
解决办法
2万
查看次数

离子2:科尔多瓦不可用.确保包含cordova.js或在设备/模拟器中运行(在模拟器中运行)

我刚刚设置了我的第一个离子2应用程序(我已经相当广泛地使用了离子1).我正在尝试使用离子原生相机预览插件.

设置很简单:

npm install -g ionic cordova
ionic start timesnap --v2
ionic platform add android
ionic platform add ios
ionic plugin add cordova-plugin-camera-preview --save
Run Code Online (Sandbox Code Playgroud)

然后我将示例代码复制并粘贴到about页面中:

import { CameraPreview, CameraPreviewRect } from 'ionic-native';

// camera options (Size and location)
let cameraRect: CameraPreviewRect = {
  x: 100,
  y: 100,
  width: 200,
  height: 200
};


// start camera
CameraPreview.startCamera(
  cameraRect, // position and size of preview
  'front', // default camera
  true, // tap to take picture
  false, // disable drag
  true, …
Run Code Online (Sandbox Code Playgroud)

camera cordova ionic-framework ionic2

50
推荐指数
2
解决办法
9万
查看次数

在Java中访问网络摄像头的最佳方式

我需要使用Java访问网络摄像头.这就是我想要做的

  1. 访问网络摄像头

  2. 现在用户可以看到网络摄像头正常工作,因为他的脸在屏幕上可见(听说有些图书馆没有显示网络摄像头的视频输出)

  3. 当用户单击"保存"按钮时,拍摄快照并保存

从很长一段时间以来,我已经尝试了很多方法来做到这一点.

  1. JMF - 现在已经死了
  2. FMJ - 现在它已经死了
  3. VLCJ - 太多了,因为我没有创建音乐/视频播放器,它希望安装VLC
  4. Xuggler - 太多而且努力工作
  5. JMyron - 没用
  6. JavaFX - 我认为它可以做到,但似乎不能

如果图书馆只是做上面提到的,我甚至感到满意,因为这对我来说已经足够了.但我希望它也很简单.如果不使用DLL,真的很棒,因为它不是平台独立的.真的很感激,如果它可以检测相机,而不像VLCJ手动传递相机名称和其他信息(因为可能有数千个相机品牌,所以我不能创建其中的千元素列表).而且,我正在创建一个桌面应用程序,而不是Web应用程序.

如果你认识这样的图书馆,请好好告诉我.其他图书馆(可能不符合我的所有要求,但也符合基本要求)也欢迎.请帮忙

java webcam camera image

48
推荐指数
2
解决办法
13万
查看次数