android bitmap uri

android - ¿Cómo puedo transformar un Bitmap en un Uri?



(6)

Aquí está el Blog de Colin que sugiere el método simple para convertir mapa de bits a Uri. Haga clic aquí

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); }

Estoy tratando de compartir imágenes con Facebook, Twitter, etc. utilizando SHARE INTENT de Android.

Encontré un código para enviar una imagen al intento de compartir, pero este código necesita la URI del mapa de bits: fullSizeImageUri

Este es el código completo:

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) { } }

Por favor, ¿puede alguien ayudarme a transformar un Bitmap en un Uri?

Gracias


Bueno, no puedes transformar un archivo de mapa de bits en un uri. Lea más sobre URI here

URI es un identificador uniforme de recursos. Pero puede colocar el mapa de bits en un URI absoluto o relativo como este

Absolute: http://android.com/yourImage.bmp Relative: yourImage.bmp


La solución anterior utiliza la tienda de medios y almacena la imagen en la carpeta de imágenes principal de los usuarios para que pueda verse a través del visor de galería / foto. Esta solución lo almacenará como un archivo temporal en los datos de sus aplicaciones. En este ejemplo, inImage es un mapa de bits y el título es una cadena para el nombre del archivo de imagen.

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);


pase bitmap y compressFormat como (PNG, JPG, etc ...) y calidad de imagen en porcentaje

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); }


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


String picName = "pic.jpg"; String PATH = Environment.getExternalStorageDirectory().getPath()+ picName; File f = new File(PATH); Uri yourUri = Uri.fromFile(f);