android中 MediaStore提取缩略图和原始图像

android中
MediaStore提取缩略图和原始图像 .

欢迎转载:http://blog.csdn.net/djy1992/article/details/10005767

提取图像的Thumbnail

1)

    启动Intent

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);

        intent.setType("image/*");

        intent.putExtra("return-data", true);

        startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED);

        在 onActivityResult 中
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode != RESULT_OK) {

                return;

            }

            Bitmap bitmap = null;

            ContentResolver resolver = getContentResolver();

            if (requestCode == REQUEST_CODE_PHOTO_PICKED) {

                final Bundle extras = data.getExtras();

                if (extras != null)

                    bitmap = extras.getParcelable("data");

            }

        }

        经过阅读android源代码发现,此方法返回的data 必须小于100k

2)   

        启动Intent

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);

        intent.setType("image/*");

        startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED);

        在 onActivityResult 中
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode != RESULT_OK) {

                return;

            }

            Bitmap bitmap = null;

            ContentResolver resolver = getContentResolver();

            if (requestCode == REQUEST_CODE_PHOTO_PICKED) {

                 try {  
            Uri originalUri = data.getData();

            Uri thumb = Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,                originalUri.getLastPathSegment());

            bitmap = MediaStore.Images.Media.getBitmap(resolver, thumb);

        } catch (IOException e) {

        }

            }

        }

提取图像原数据

        启动Intent

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);

        intent.setType("image/*");

        startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED);

        在 onActivityResult 中
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode != RESULT_OK) {

                return;

            }

            Bitmap bitmap = null;

            ContentResolver resolver = getContentResolver();

            if (requestCode == REQUEST_CODE_PHOTO_PICKED) {

        try {

                    Uri originalUri = data.getData();

            bitmap = MediaStore.Images.Media.getBitmap(resolver, originalUri );

        } catch (IOException e) {

        }

            }

        }

时间: 2024-11-03 18:00:44

android中 MediaStore提取缩略图和原始图像的相关文章

Android中MediaStore使用示例

package cn.com; import java.io.IOException; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.media.ExifInterface; import android.os.Bundle; import android.provider.MediaStore; public

Android中如何获取视频文件的截图、缩略图_Android

背景 公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下. 代码实现 /** * 获取视频文件截图 * * @param path 视频文件的路径 * @return Bitmap 返回获取的Bitmap */ public static Bitmap getVideoThumb(String path) { MediaMetadataRetriever media = new Me

代码-android中怎么从相册中提取自定义的图片添加到软件中

问题描述 android中怎么从相册中提取自定义的图片添加到软件中 刚开始学Android,想自己做一个桌面的小插件,对相册中的图片进行来回的播放,可不知道怎么从相册中提取自己想要的图片,是用流么,还是用别的相关方法,求代码 解决方案 http://www.2cto.com/kf/201503/381143.html 解决方案二: 你需要从图库里面获取URI.

Android中3种图片压缩处理方法

  这篇文章主要介绍了Android中3种图片压缩处理方法,本文讲解了质量压缩方法.获得缩略图.图片缩放三种方法并分别给出示例代码,需要的朋友可以参考下 Android中图片的存在形式: 1:文件形式:二进制形式存在与硬盘中. 2:流的形式:二进制形式存在与内存中. 3:Bitmap的形式 三种形式的区别: 文件形式和流的形式:对图片体积大小并没有影响.也就是说,如果你手机SD卡上的图片通过流的形式读到内存中,在内存中的大小也是原图的大小. 注意:不是Bitmap的形式. Bitmap的形式:图

Android中Intent习惯用法_Android

Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见<详解Android中Intent的使用方法>.如果对Intent Filter不是特别了解,可以参见<详解Android中Intent对象与Intent Filter过滤匹配过程>. 本文着重讲一下Android中一些常见的Intent的习惯用法,比如如何通过Intent发送短信.发送邮件.启动摄像机拍照录视频.设置闹铃.打开WIFI设置界面等等. 限于篇幅,本文分为上下两篇,这是上篇. 发

Android中3种图片压缩处理方法_Android

Android中图片的存在形式: 1:文件形式:二进制形式存在与硬盘中. 2:流的形式:二进制形式存在与内存中. 3:Bitmap的形式 三种形式的区别: 文件形式和流的形式:对图片体积大小并没有影响.也就是说,如果你手机SD卡上的图片通过流的形式读到内存中,在内存中的大小也是原图的大小. 注意:不是Bitmap的形式. Bitmap的形式:图片占用的内存会瞬间变大. 以下是代码的形式:      /** * 图片压缩的方法总结 */ /* * 图片压缩的方法01:质量压缩方法 */ priva

图像处理-android 视频封面提取,替换视频第一帧图像

问题描述 android 视频封面提取,替换视频第一帧图像 求大神助攻啊, android 开发中怎么替换一段视频的第一帧图像 ,请给个思路,先谢过了! 解决方案 建议不要取第一帧,用户体验不好,往往第一帧都是黑色或是绿色的,往后多走几帧要好一些 解决方案二: 试试MediaStore.Video.Thumbnails 类的成员函数:getThumbnail吧?

Android中使用GridView实现仿微信图片上传功能(附源代码)

由于工作要求最近在使用GridView完成图片的批量上传功能,我的例子当中包含仿微信图片上传.拍照.本地选择.相片裁剪等功能,如果有需要的朋友可以看一下,希望我的实际经验能对您有所帮助. 直接上图,下面的图片就是点击"加号"后弹出的对话框,通过对话框可以根据自己需求进行相片选择. 项目结构: 下面直接上代码. 整体的布局文件activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/

Android中图片压缩方案详解及源码下载

Android中图片压缩方案详解及源码下载 图片的展示可以说在我们任何一个应用中都避免不了,可是大量的图片就会出现很多的问题,比如加载大图片或者多图时的OOM问题,可以移步到Android高效加载大图及多图避免程序OOM.还有一个问题就是图片的上传下载问题,往往我们都喜欢图片既清楚又占的内存小,也就是尽可能少的耗费我们的流量,这就是我今天所要讲述的问题:图片的压缩方案的详解. 1.质量压缩法 设置bitmap options属性,降低图片的质量,像素不会减少 第一个参数为需要压缩的bitmap图