How to get the Image Format of the images from Gallery

三世轮回 提交于 2019-12-06 21:49:26

问题


I want to know the Image format (i.e. JPFG/PNG etc) of the images which I am getting from the gallery.

My need is to pic images from the gallery of the device and send it to server in Base64 format but the server wants to know image format.

Any help is appreciated.


回答1:


Edited:

Use the following method to retrieve the MIME type of an image from the gallery:

public static String GetMimeType(Context context, Uri uriImage)
{
    String strMimeType = null;

    Cursor cursor = context.getContentResolver().query(uriImage,
                        new String[] { MediaStore.MediaColumns.MIME_TYPE },
                        null, null, null);

    if (cursor != null && cursor.moveToNext())
    {
        strMimeType = cursor.getString(0);
    }

    return strMimeType;
}

This will return something like "image/jpeg".


Previous answer:

You can use the following code to convert the image from the Gallery to the format you want, like a JPG:

ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();

Bitmap bitmapImage = BitmapFactory.decodeStream(
                         getContentResolver().openInputStream(myImageUri));

if (bitmapImage.compress(Bitmap.CompressFormat.JPEG, 100, outputBuffer))
{
    // Then perform a base64 of the byte array...
}

This way you will control the image format your are sending to the server, and can even compress more to save bandwidth. ;)




回答2:


It is possible to get MIME type with path alone.

 public static String getMimeType(String imageUrl) {
        String extension = MimeTypeMap.getFileExtensionFromUrl(imageUrl);
        String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
                extension);
        // Do Manual manipulation if needed
        if ("image/x-ms-bmp".equals(mimeType)) {
            mimeType = "image/bmp";
        }
        return mimeType;
    }



回答3:


You can get the file extension from the file path by doing something like this:

int dotposition= filePath.lastIndexOf(".");
String format = filePath.substring(dotposition + 1, file.length());

Does that fix the issue?



来源:https://stackoverflow.com/questions/9414487/how-to-get-the-image-format-of-the-images-from-gallery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!