gpt4 book ai didi

android - 在 surfaceView android 上裁剪图像

转载 作者:行者123 更新时间:2023-11-30 03:35:10 26 4
gpt4 key购买 nike

我正在使用 SurfaceHolder.Callback 和 Camera.PictureCallback 在我的 Activity 中打开相机拍摄图像后,我想裁剪该图像,然后将其保存到 SD 卡。我找到了很多通过 Intent 相机进行裁剪的解决方案,但没有找到符合我要求的任何解决方案。
如果有人帮助我,我将不胜感激。

提前致谢。

最佳答案

您应该实现 Camera.PreviewCallback 而不是 Camera.PictureCallback,

通过使用接口(interface)实现的方法:

public void onPreviewFrame(byte[] data, Camera camera) {
if (shutterEnabled){
shutterEnabled = false;

// Process data
// Put it on a Bitmap
// Send it to cropImage
// -----
}
}

请注意,如果您没有设置相机参数 setPreviewFormat,viewPreviewFrame 上的图片将以 YUV (NV21) 格式到达。事实上,我正在寻找如何制作这部分,这就是我遇到你的问题的原因。

这里的重点,你打算如何将图片传递给 crop 方法,你应该研究一下。

shutterEnabled 标志,它是从“监视”该事件的监听器启用的。

private void cropImage( picture){
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(picture, "image/*");
cropIntent.putExtra("aspectX",0);
cropIntent.putExtra("aspectY",0);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, CAMERA_CROP_CODE);
}


protected void onActivityResult(int requestCode, int resultCode, Intent data){

if (resultCode == RESULT_OK && requestCode == CAMERA_CROP_CODE){
Bitmap bmp = (Bitmap)data.getExtras().get("data");

}
}

关于android - 在 surfaceView android 上裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730563/

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