web-dev-qa-db-fra.com

Comment puis-je transformer un bitmap en un Uri?

J'essaie de partager des images avec Facebook, Twitter, etc. en utilisant SHARE INTENT à partir d'Android.

J'ai trouvé du code pour envoyer une image à l'intention du partage, mais ce code nécessite l'URI du bitmap: fullSizeImageUri

C'est le code complet:

private void startShareMediaActivity(Bitmap image) {
    boolean isVideo=false;
    String mimeType="bmp";
    Uri fullSizeImageUri=null;
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.setType(mimeType);
    intent.putExtra(Intent.EXTRA_STREAM, fullSizeImageUri);
    try {
        startActivity(Intent.createChooser(intent, (isVideo ? "video" : "image")));
    } catch (Android.content.ActivityNotFoundException ex) { }
}

S'il vous plaît, quelqu'un peut-il m'aider à transformer un bitmap en Uri?

merci

31
String FILENAME = "image.png";
String PATH = "/mnt/sdcard/"+ FILENAME;
File f = new File(PATH);
Uri yourUri = Uri.fromFile(f);
22
KK_07k11A0585

Voici le blog de Colin qui suggère la méthode simple pour convertir une image bitmap en Uri Cliquez ici

public Uri getImageUri(Context inContext, Bitmap inImage) {
  ByteArrayOutputStream bytes = new ByteArrayOutputStream();
  inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
  String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
  return Uri.parse(path);
}
58
Ajay

La solution ci-dessus utilise le magasin de médias et stocke l’image dans le dossier d’images principal de l’utilisateur, ce qui la rend visible par le biais de la visionneuse de galeries/de photos. Cette solution le stockera en tant que fichier temporaire dans les données de vos applications. Dans cet exemple, inImage est une bitmap et title est une chaîne de caractères pour le nom du fichier image.

    File tempDir= Environment.getExternalStorageDirectory();
    tempDir=new File(tempDir.getAbsolutePath()+"/.temp/");
    tempDir.mkdir();
    File tempFile = File.createTempFile(title, ".jpg", tempDir);
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    byte[] bitmapData = bytes.toByteArray();

    //write the bytes in file
    FileOutputStream fos = new FileOutputStream(tempFile);
    fos.write(bitmapData);
    fos.flush();
    fos.close();
    return Uri.fromFile(tempFile);
1
ocross
String picName = "pic.jpg";
        String PATH = Environment.getExternalStorageDirectory().getPath()+ picName;
        File f = new File(PATH);
        Uri yourUri = Uri.fromFile(f);
0
mehrdad khosravi

passer bitmap et compressFormat like (PNG, JPG, etc ...) et qualité d'image en pourcentage

public Uri getImageUri(Bitmap src, Bitmap.CompressFormat format, int quality) {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    src.compress(format, quality, os);

    String path = MediaStore.Images.Media.insertImage(getContentResolver(), src, "title", null);
    return Uri.parse(path);
}
0
Pankaj Talaviya

Eh bien, vous ne pouvez pas transformer un fichier bitmap en un URI. En savoir plus sur URI ici

L'URI est un identificateur de ressource uniforme. Mais vous pouvez placer le bitmap dans un URI absolu ou relatif comme ceci

Absolute: http://Android.com/yourImage.bmp
Relative: yourImage.bmp 
0
Aurelian Cotuna