java捕获图像并将其上载到数据库
我想从相机上传图像到数据库。我已经从gallery解决了这个问题,gallery中的图像已经上传到数据库,但它无法从相机或捕获图像中工作,我试图用gallery编写相同的代码,但我有一个错误
这是我的密码
这是我的Android清单。xml代码
<uses-permission 安卓:name="安卓.permission.CAMERA"/>
<uses-permission 安卓:name="安卓.permission.READ_EXTERNAL_STORAGE"/>
<uses-feature 安卓:name="安卓.hardware.camera"/>
<uses-permission 安卓:name="安卓.permission.WRITE_EXTERNAL_STORAGE" />
main活动
这是我的提交按钮
reportsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ImageUploadToServerFunction();
}
});
}
这是我将图像上传到数据库的代码
public void ImageUploadToServerFunction(){
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, bytes);
byte[] byteArrayVar = bytes.toByteArray();
final String ConvertImage = Base64.encodeToString(byteArrayVar, Base64.DEFAULT);
}
这是我打开相机的代码
private void openCamera() {
Intent cameraIntent = new Intent(安卓.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
这是我的OnActivityResult代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (attachment >= 1 && attachment <= 8) {
if (resultCode == RESULT_OK && requestCode == 1 && data != null && data.getData() != null) {
Uri uri = data.getData();
try {
if (attachment == 1) {
dynamic = (ImageView) findViewById(R.id.imgview);
} else if (attachment == 2) {
dynamic = (ImageView) findViewById(R.id.imgview1);
} else if (attachment == 3) {
dynamic = (ImageView) findViewById(R.id.imgview2);
} else if (attachment == 4) {
dynamic = (ImageView) findViewById(R.id.imgview3);
} else if (attachment == 5) {
dynamic = (ImageView) findViewById(R.id.imgview4);
} else if (attachment == 6) {
dynamic = (ImageView) findViewById(R.id.imgview5);
} else if (attachment == 7) {
dynamic = (ImageView) findViewById(R.id.imgview6);
} else if (attachment == 8) {
dynamic = (ImageView) findViewById(R.id.imgview7);
}
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
dynamic.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
} else if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
if (attachment == 1) {
dynamic = (ImageView) findViewById(R.id.imgview);
} else if (attachment == 2) {
dynamic = (ImageView) findViewById(R.id.imgview1);
} else if (attachment == 3) {
dynamic = (ImageView) findViewById(R.id.imgview2);
} else if (attachment == 4) {
dynamic = (ImageView) findViewById(R.id.imgview3);
} else if (attachment == 5) {
dynamic = (ImageView) findViewById(R.id.imgview4);
} else if (attachment == 6) {
dynamic = (ImageView) findViewById(R.id.imgview5);
} else if (attachment == 7) {
dynamic = (ImageView) findViewById(R.id.imgview6);
} else if (attachment == 8) {
dynamic = (ImageView) findViewById(R.id.imgview7);
}
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
dynamic.setImageBitmap(imageBitmap);
// CALL THIS METHOD TO GET THE URI FROM THE BITMAP
Uri tempUri = getImageUri(getApplicationContext(), imageBitmap);
// CALL THIS METHOD TO GET THE ACTUAL PATH
Toast.makeText(report.this,"Here "+ getRealPathFromURI(tempUri),Toast.LENGTH_LONG).show();
}
System.out.print(resultCode);
}
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
public String getRealPathFromURI(Uri uri) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
return cursor.getString(idx);
}
共 (0) 个答案