如何从图库中获取图像的图像格式

我想知道我从画廊得到的图像格式(即JPFG / PNG等)。

我的需要是从设备的画廊图片图像,并发送到服务器的Base64格式,但服务器想知道图像格式。

任何帮助表示赞赏。

Solutions Collecting From Web of "如何从图库中获取图像的图像格式"

编辑:

使用以下方法从图库中检索图像的MIMEtypes:

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

这将返回像“图像/ JPEG”的东西。


先前的回答:

您可以使用以下代码将图库中的图像转换为您需要的格式,如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... } 

这样你就可以控制你发送给服务器的图像格式,甚至可以压缩更多的图像来节省带宽。 ;)

可以单独获取path的MIMEtypes。

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

您可以通过执行如下操作来从文件path中获取文件扩展名:

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

这是否解决了这个问题?