2016-08-13 3 views
0

Я понимаю, что этот вопрос был задан раньше, и я исследовал возможные решения без везения, так что вот оно. Я пытаюсь сохранить обрезанное изображение в базу данных 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(); 
     } 
    } 
} 
+0

'Я продолжаю получать нуль. Что станет нулевым? – greenapps

+0

'result.getUri(). GetPath()'. Какая ценность? И член '.toString()'? – greenapps

+0

В Android много менеджера ресурсов изображений. Не делайте это вручную. – Tugrul

ответ

1

Я смог его обработать. Я использовал образ изображения api и смог получить изображение в виде растрового изображения.

Смежные вопросы