在我的应用程序中,我通过 android 相机拍摄照片,然后我想将其发送到服务器。为此,我使用客户端套接字编程。我将捕获的照片转换为 bytearray(byte[]),然后将其发送到服务器。每件事实际上都有效。
问题是我无法将原始照片发送到服务器。缩略图照片由安卓手机发送。但是当我用相机拍摄照片时,原始照片就在画廊中。
如何让这张原始照片在我的应用程序中使用?
我的代码:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("outputFormat",Bitmap.CompressFormat.JPEG);
cameraIntent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(cameraIntent, "Select Picture"),
CAMERA_REQUEST);
在 onActivityResult 方法中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
// byte[] a = (byte[]) data.getExtras().getByteArray("data"); // I also use this but not work
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photo.compress(CompressFormat.JPEG, 100, bos);
byte[] bitmapdata = bos.toByteArray();
}
}
在位图数据照片中,但压缩照片不是原始照片。有人说,更改压缩的质量字段(CompressFormat.JPEG,100,bos);在 0 到 100 之间,但什么都不会发生。
-- >>还有其他方法可以获得相机拍摄的原始照片吗
-- >>当照片在我电脑的文件夹中时,我通过给出路径来读取文件中的这张照片。ex-文件文件 = 新文件(c:\newphoto\image.jpg);. 我可以在 android 中使用此代码读取原始照片吗,因为我知道照片的名称和位置。如果是,那么在画廊中阅读照片的路径是什么。如果我将路径指定为:\DCIM\Camera\photoName.jpg ,这项工作是否有效。
-- >>或者我当前的代码需要一些改变,它会正常工作吗?