2017-02-25 2 views
0

Je n'ai pas trouvé la réponse à cette question n'importe où. L'image bitmap est traitée dans l'application, ce qui signifie qu'il n'y a pas de chemin de fichier pour obtenir l'image.Comment faire pour convertir une image bitmap à Uri

Voici comment convertir un Uri en Bitmap

if (requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK) { 
     Uri selectedImageUri = data.getData(); 

     imageview.setImageURI(selectedImageUri); 

     try { 
      bitmap1 = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImageUri); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      Toast.makeText(this, "" + e, Toast.LENGTH_SHORT).show(); 
     } 

     bitmap1.compress(Bitmap.CompressFormat.JPEG, 7, bytearrayoutputstream); 

     BYTE = bytearrayoutputstream.toByteArray(); 

     bitmap2 = BitmapFactory.decodeByteArray(BYTE, 0, BYTE.length); 

     imagetoo.setImageBitmap(bitmap2); 
    } 

Comment puis-je maintenant Reconvertir un Uri

+0

Copie possible de [Comment puis-je transformer un bitmap en un Uri?] (Http://stackoverflow.com/questions/8295773/how-can-i-transform-a-bitmap-into-a-uri) –

Répondre

2
URI

Regardez Man est super jeu d'URL que ses moyens un chemin vers un fichier. tandis que Bitmap est une image numérique composée d'une matrice de points. Bitmap représente une donnée et uri représente cet emplacement où les données sont sauvegardées .SO si vous avez besoin d'obtenir un URI pour un bitmap Vous avez juste besoin de l'enregistrer sur un stockage. Dans Android, vous pouvez le faire en Java IO comme ci-dessous: Créez d'abord un fichier dans lequel vous voulez enregistrer:

public File createImageFile() { 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); 
    String imageFileName = "JPEG_" + timeStamp + "_"; 
    File mFileTemp = null; 
    String root=activity.getDir("my_sub_dir",Context.MODE_PRIVATE).getAbsolutePath(); 
    File myDir = new File(root + "/Img"); 
    if(!myDir.exists()){ 
     myDir.mkdirs(); 
    } 
    try { 
     mFileTemp=File.createTempFile(imageFileName,".jpg",myDir.getAbsoluteFile()); 
    } catch (IOException e1) { 
     e1.printStackTrace(); 
    } 
    return mFileTemp; 
} 

Ensuite, rincez-le et vous obtiendrez le ERUi

File file = createImageFile(context); 
if (file != null) { 
    FileOutputStream fout; 
    try { 
     fout = new FileOutputStream(file); 
     currentImage.compress(Bitmap.CompressFormat.PNG, 70, fout); 
     fout.flush(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    Uri uri=Uri.fromFile(file); 
} 
+0

bonne explication. J'ai eu cette idée, je sais comment l'éteindre. Lemme essayer dans une minute – Lucem

+1

génial, travaillé. mais j'ai restructuré le code – Lucem