gpt4 book ai didi

android - 修改实时摄像机 View

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

如何在 Android 上修改实时相机 View ?

我正在搜索并找到了这个应用 https://play.google.com/store/apps/details?id=com.fingersoft.cartooncamera作为一个很好的例子,我想做什么。我也想对我的相机 View 应用一些效果。我需要找到一种方法来添加一些效果或在我的相机 View 上绘制一些东西。

据我所知,我必须获取一些视频流,应用一些更改并在相机 View 中显示。

有什么想法吗?

非常感谢!

最佳答案

您可以找到有关此主题 Android - Camera Preview 和此 post 的更多信息。一种完全不同的方法是使用 OpenCV

我能想到的获取图像并在屏幕上预览的最小代码如下所示:

public class MainActivity extends Activity implements Callback {

Camera camera;
SurfaceView surfaceView;
SurfaceHolder holder;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
}

@Override
protected void onResume() {
super.onResume();
camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(ImageFormat.JPEG);
camera.setParameters(parameters);

holder = surfaceView.getHolder();
holder.addCallback(this);

camera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
// You could apply some pixel operations directly here.
Log.d("Camera", "Camera image aquired");
}
});
}

@Override
protected void onPause() {
super.onPause();
camera.stopPreview();
camera.release();
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
camera.startPreview();
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}

可以在 GitHub 上找到执行此操作的完整示例。

关于android - 修改实时摄像机 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846500/

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