完整的用Java写一个相机调用程序并将拍到的照片转为base64格式。这里相机只要拍照权限。代码注释
时间: 2024-05-01 11:17:12 浏览: 97
JAVA将图片转换为Base64编码
以下是一个完整的Java代码示例,用于调用相机并将拍摄的照片转换为base64格式:
```
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Base64;
import android.widget.ImageView;
import java.io.ByteArrayOutputStream;
public class MainActivity extends Activity {
private static final int REQUEST_IMAGE_CAPTURE = 1;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageView);
// 检查相机权限
if (checkSelfPermission(android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.CAMERA}, 1);
} else {
dispatchTakePictureIntent();
}
}
// 拍照
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
// 获取拍摄的照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
imageView.setImageBitmap(imageBitmap);
// 将照片转换为base64格式
String base64Image = convertBitmapToBase64(imageBitmap);
// 使用base64格式的照片进行其他操作
// ...
}
}
// 将Bitmap转换为base64格式
private String convertBitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
return Base64.encodeToString(byteArray, Base64.DEFAULT);
}
}
```
这个代码示例包括以下步骤:
1. 检查相机权限并请求权限(如果没有权限)。
2. 调用相机应用程序以拍摄照片。
3. 获取拍摄的照片并在ImageView中显示。
4. 将照片转换为base64格式并进行其他操作。
请注意,这个代码示例假设您已经在布局文件中定义了一个ImageView,其ID为“imageView”。如果您没有定义,请根据需要修改代码。
阅读全文