Изображение загружается на сервер в моем проекте Android?
Моя проблема здесь в том, что при загрузке изображения на сервер загружаемые изображения вращаются. Любая помощь, пожалуйста. Могу ли я получить помощь в решении моей проблемы. Выручи меня. И я не знаю, как использовать для этого интерфейс exif.
Uri imagesUri = null;
if (imagesUri != null) {
setApicall();
Uri myUri = Uri.parse(imagesUri.toString());
getApicall(myUri, "My Image");
} else {
showAlert("Attention..", "Please Insert Image.");
}
public void onActivityResult(int requestCode, int resultcode, Intent data) {
super.onActivityResult(requestCode, resultcode, data);
if (resultcode == RESULT_OK && requestCode == PICK_IMAGE) {
tv_add_photo.setVisibility(View.GONE);
imagesUri = data.getData();
image.setImageURI(imagesUri);
}
}
private String getRealPathFromURI(Uri contentUri) {
String[] proj = {MediaStore.Images.Media.DATA};
CursorLoader loader = new CursorLoader(this, contentUri, proj, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String result = cursor.getString(column_index);
cursor.close();
return result;
}
private void getApicall(Uri fileUri, String desc) {
try {
File file = new File(getRealPathFromURI(fileUri));
//creating request body for file
RequestBody requestFile = RequestBody.create(MediaType.parse(getContentResolver().getType(fileUri)), file);
RequestBody descBody = RequestBody.create(MediaType.parse("text/plain"), desc);
Log.d("Key", getContentResolver().getType(fileUri));
Call<ImageUploadResponse> getPhotoUpload = apiInterface.uploadImage(requestFile, descBody);
getPhotoUpload.enqueue(ImageUploadResposeCallback);
} catch (Exception e) {
e.printStackTrace();
}
}
1 ответ
Попробуйте метод ниже, чтобы повернуть изображение в различных типах соотношения, минуя путь изображения
public static int getImageAngle(String picturePath) {
try {
ExifInterface ei = new ExifInterface(picturePath);
int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
Log.i("TEST", "orientation : " + 90);
return 90;
case ExifInterface.ORIENTATION_ROTATE_180:
Log.i("TEST", "orientation : " + 180);
return 180;
case ExifInterface.ORIENTATION_ROTATE_270:
Log.i("TEST", "orientation : " + 270);
return 270;
default:
Log.i("TEST", "orientation : " + 0);
return 0;
}
} catch (IOException e) {
//Log.e("TEST", "" + e.getMessage());
return 0;
}
}
public static Bitmap rotateImage(Bitmap source, float angle) {
Bitmap retVal;
Matrix matrix = new Matrix();
matrix.postRotate(angle);
retVal = Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
return retVal;
}