2010-12-22 6 views
1

Hier ist, was ich tue:Android: Getting byte [] von Bild ID

In onActivityResult, bekomme ich die Daten in einer Absicht.

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
startActivityForResult(intent, TAKE_PICTURE); 

Dieser Code wird das Bild ID:

data.getData().getLastPathSegment(); 

Jetzt möchte ich dieses Bild ID verwenden Byte zu erhalten [] imagedata, so kann ich das Bild auf einen Server hochladen.

Wie gehe ich vor?

Antwort

1
Uri selectedImageUri = data.getData(); 

String[] projection = { MediaStore.Images.Media.DATA }; 
Cursor cursor = managedQuery(selectedImageUri, projection, null, null, null); 
cursor.moveToFirst(); 
selectedImagePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA)); 
cursor.close(); 

try 
{ 
    File myFile = new File(selectedImagePath); 
    int filelenghth=(int)myFile.length(); 
    byte [] mybytearray = new byte [filelenghth]; 
    BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(myFile)); 

    bis1.read(mybytearray,0,mybytearray.length); 

    dos.write(mybytearray,0,mybytearray.length); // write the array to the data output stream 
                // or whatever else you want to do with it 
    finish(); 
} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 
+0

Dank Abhishek. Das hilft mir sehr. –

0

data.getData() wird Ihnen einen URI für Ihr Bild zurückgeben. (Überprüfen Sie die Daten! = Null zuerst!)

dann müssen Sie nur eine http-Post auf Ihrem Server durchführen.

Siehe folgende Verweis auf SO für den http Postleitzahl: Sending images using Http Post