1
我實現了捕獲圖像並將其發送到服務器的功能。發送到服務器時圖像旋轉到90度
如果我採取與縱向模式的圖片,然後將其發送到服務器,畫面旋轉總是向左
90度但是,如果我重複這與水平模式,一切工作正常。
所以,我想出了一個想法 我把圖片變成了一個位圖對象,並獲得寬度和高度。 我累了要做的就是在發送到服務器之前將圖片旋轉到90度(當我嘗試使用肖像模式時) 但是,它從來沒有工作過(縱向模式的圖片在寬度上也有更多像素...... )
任何人都可以給我一些提示嗎?
private void call_camera(){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, PICK_FROM_CAMERA);
}
這是用於調用相機功能。
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(resultCode != RESULT_OK)
return;
if(requestCode == PICK_FROM_CAMERA){
imageUri = data.getData();
Log.d("메시지", "uri = "+imageUri);
Cursor c = this.getContentResolver().query(imageUri, null, null, null, null);
c.moveToNext();
absolutePath = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));
}
}
我用absolutePath 製作的文檔對象,然後將其發送給服務器。
fileInputStream = new FileInputStream(file);
int bytesAvailable = fileInputStream.available();
int maxBufferSize = 1024;
int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffer = new byte[bufferSize];
int bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while (bytesRead > 0) {
DataOutputStream dataWrite = new DataOutputStream(con.getOutputStream());
dataWrite.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
fileInputStream.close();
wr.writeBytes("\r\n--" + boundary + "--\r\n");
wr.flush();
謝謝!有用! – heesu
我did.but ..因爲我得名低,它說我的投票不改變分數 – heesu
謝謝。快樂編碼:) –