在我的應用程序中,我通過android相機捕獲照片,然後我想將它發送到服務器。爲此我使用Client Socket編程。我將捕獲的照片轉換爲bytearray(byte []),然後將其發送到服務器。每件事情都在事實上發揮作用。Android:無法獲取相機捕獲的原始照片(只能讀取壓縮照片)
問題是否存在我無法將原始照片發送到服務器。縮略圖照片由android手機發送。但是當我用照相機拍攝照片時,原始照片就在畫廊中。
如何讓這張原始照片在我的應用程序中使用?
我的代碼:
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();
}
}
在的BitmapData照片是有,但壓縮的照片不是原件。 有些人說,壓縮(CompressFormat.JPEG,100,BOS)的改變質量領域;介於0到100之間,但什麼都不會發生。
- >>是也有其他的方式來獲得原始照片是由相機
捕獲 - >>當這張照片是在我的電腦的文件夾,然後我看到這張照片通過給出路徑在文件中。 ex-File file = new File(c:\ newphoto \ image.jpg);。我可以在android中使用此代碼來閱讀原始照片,因爲我知道照片的名稱和位置。如果是,那麼在圖庫中閱讀照片的路徑是什麼。如果我將路徑設爲:\ DCIM \ Camera \ photoName.jpg,這是否正常工作?
- >>或者一些改變需要在我當前的代碼,它會正常工作?