gpt4 book ai didi

Android 拍照并将其存储为字节数组

转载 作者:行者123 更新时间:2023-11-29 18:21:06 25 4
gpt4 key购买 nike

我这里有一段简单的代码,但由于某种原因它没有存储数据。我确定这是愚蠢的事情,但我似乎无法弄清楚。任何帮助将不胜感激。

    private byte[] picture;

public void takePicture(){
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.set("camera-id",2);
camera.setParameters(parameters);
parameters.set("gps-timestamp", "1233744883");
camera.setParameters(parameters);
Log.i("method", "in takePicture()");
camera.takePicture(null, rawCallback, null);
camera.release();
}

PictureCallback rawCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
// TODO Do something with the image RAW data.
Log.i("rawcallback", "in rawcallback");
picture = data;
}
};

当我运行代码时,回调中的日志没有被调用,“图片”也没有保存“数据”。有什么想法吗?我正在尝试使用前置摄像头拍照,我是否需要一些特殊的东西,但我没有这样做?

我也有这些权限

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

最佳答案

Camera.takePicture() 中的最后一个参数对应于 JPEG 回调。因此,您应该在调用 camera.setParameters() 之前添加 parameters.setPictureFormat(PixelFormat.JPEG); 行。或者使用 camera.takePicture(null, rawCallback, null); 代替。

您还应确保在 AndroidManifest.xml 中包含以下几行:

 <uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

来 self 的评论:

API用于访问面向字体的相机仅出现在 Android 2.3(API 版本 9)中。在早期版本中,您应该使用特定于供应商的技术。看看this working solution对于 Galaxy S:

Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
parameters.setPreviewSize(640, 480); // or (800,480) this is supported front camera preview size @ Samsung Galaxy S
mCamera.setParameters(parameters);

希望对您有所帮助。如果不是,请尝试使用上面的 setPreviewSize 参数。

关于Android 拍照并将其存储为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com