Я понимаю, что этот вопрос был задан раньше, и я исследовал возможные решения без везения, так что вот оно. Я пытаюсь сохранить обрезанное изображение в базу данных sqlite. Я использую библиотеку обрезки Android-Image-Cropper следующим образом: мой метод onActivityResult():Сохранение обрезанного изображения в базу данных SQLite
Все работает, кроме той части, где я пытаюсь сохранить изображение в виде растрового изображения. Я продолжаю получать нуль. Однако я могу заполнить свой ImageView строкой
ivTroopPhoto.setImageURI (result.getUri());
Если кто-то использовал этот API, он может помочь мне решить эту проблему.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == PIC_FROM_CAMERA) || (requestCode == PIC_FROM_GALLERY)) {
if (resultCode == RESULT_OK) {
Uri picUri = data.getData();
CropImage.activity(picUri)
.setGuidelines(CropImageView.Guidelines.ON)
.setFixAspectRatio(true)
.setAspectRatio(1, 1)
.start(this);
}
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
ibCameraIcon.setVisibility(View.GONE);
ivTroopPhoto.setVisibility(View.VISIBLE);
ivTroopPhoto.setImageURI(result.getUri());
tvTroopPhoto.setText(R.string.change_photo);
Log.d("dozer74", "==============================> Image Uri: " + result.getUri().getPath());
//Uri imageUir = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), result.getUri());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
Log.d("dozer74", "==========> Encoded Base64 Image: " + encoded);
} catch (IOException e) {
e.printStackTrace();
}
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Toast.makeText(this, String.format("Cropping failed: %s", result.getError()), Toast.LENGTH_LONG).show();
}
}
}
'Я продолжаю получать нуль. Что станет нулевым? – greenapps
'result.getUri(). GetPath()'. Какая ценность? И член '.toString()'? – greenapps
В Android много менеджера ресурсов изображений. Не делайте это вручную. – Tugrul