Android 获取图片或视频略缩图

    /**
     * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1.
     * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度,
     * 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图。 2.
     * 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使 用这个工具生成的图像不会被拉伸。
     *
     * @param imagePath
     *            图像的路径
     * @param width
     *            指定输出图像的宽度
     * @param height
     *            指定输出图像的高度
     * @return 生成的缩略图
     */
    public static Bitmap getImageThumbnail(String imagePath, int width, int height)
    {
    Bitmap bitmap = null;
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    // 获取这个图片的宽和高,注意此处的bitmap为null
    bitmap = BitmapFactory.decodeFile(imagePath, options);
    options.inJustDecodeBounds = false; // 设为 false
    // 计算缩放比
    int h = options.outHeight;
    int w = options.outWidth;
    int beWidth = w / width;
    int beHeight = h / height;
    int be = 1;
    if (beWidth < beHeight)
    {
        be = beWidth;
    }
    else
    {
        be = beHeight;
    }
    if (be <= 0)
    {
        be = 1;
    }
    options.inSampleSize = be;
    // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false
    bitmap = BitmapFactory.decodeFile(imagePath, options);
    // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象
    bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
        ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
    return bitmap;
    }

    /**
     * 获取视频的缩略图 先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图。
     * 如果想要的缩略图的宽和高都小于MICRO_KIND,则类型要使用MICRO_KIND作为kind的值,这样会节省内存。
     *
     * @param videoPath
     *            视频的路径
     * @param width
     *            指定输出视频缩略图的宽度
     * @param height
     *            指定输出视频缩略图的高度度
     * @param kind
     *            参照MediaStore.Images.Thumbnails类中的常量MINI_KIND和MICRO_KIND。
     *            其中,MINI_KIND: 512 x 384,MICRO_KIND: 96 x 96
     * @return 指定大小的视频缩略图
     */
    public static Bitmap getVideoThumbnail(String videoPath, int width, int height,
        int kind)
    {
    Bitmap bitmap = null;
    // 获取视频的缩略图
    bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, kind);
    System.out.println("w" + bitmap.getWidth());
    System.out.println("h" + bitmap.getHeight());
    bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
        ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
    return bitmap;
    }
时间: 2024-12-09 18:38:08

Android 获取图片或视频略缩图的相关文章

android 获取 图片或视频略缩图

/** * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1. * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度, * 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图. 2. * 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使 用这个工具生成的图像不会被拉伸. * * @param imagePath * 图像的路径 * @param width * 指定输出图

android 自定义的小工具类(1)获取图片和视频的缩微图

获取图片缩微图: public Bitmap getImageThumbnail(String uri, int width, int height){ Bitmap bm = null; //缩略图 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true;//设置为true, 不会返回位图, 但仍会设置字段, 允许查找位图而不分配内存 //获取原图,将uri路径

多任务卡片式略缩图管理界面联想

多任务卡片式略缩图管理界面 的感想 想到应用退出到后台后展示的图片可能会牵涉隐私,所以我们做开发的人员是否可以考虑在快退出后台的时候做出相应的处理.(目前我暂未尝试) 举例:比如你拍照,拍完后发现特别不想让别人看见,于是就把图片删了.结果如果你没有退出程序,别人还可以通过多任务卡片式略缩图管理界面(也就是iPhone的双机home建android的..不知道咋描述) 类似的东西比如短信,在锁屏的情况下,可以在屏幕电池栏查看短信一次.不太安全不 生活中有很多可以观察得东西 版权声明:本文为博主原创

php 制作略缩图

一.需求 最近公司的项目中有个需求,就是用户上传自己的微信二维码,然后系统会自动将用户的微信二维码合并到产品中 二.分析 因为该系统是手机端的,所以从用户端的体验出发,用户当然是直接在微信上保存二维码然后上传.这里有个问题就是, 微信的安卓版本与ios版本保存下来的图片尺寸是不一样的.所以为了更加谨慎的使用二维码,这里需要将上传的二维码 进行转化为统一的规格.所以需要制作略缩图 三.过程 我们可以使用php的GD库来处理,定义一个目标尺寸画布,然后将二维码拷贝布满画布,就是代码 /** * 制作

android获取图片的旋转角度

public static int getExifOrientation(String filepath) { int degree = 0; ExifInterface exif = null; try { exif = new ExifInterface(filepath); } catch (IOException ex) { Log.d(TAG, "cannot read exif" + ex); } if (exif != null) { int orientation =

Android获取图片实际大小兼容平板电脑

项目中有个图片在平板电脑中显示特别小的原因,一直苦于没找到原因,也没有平板电脑测试,今天找了个修改分辨率的,编写相关方法终于处理了,记录下比较: 好让以后不造轮子. 主要是获取文章相关图片显示问题,直接用getIntrinsicWidth()方法获取,getIntrinsicWidth()获取的并非图片的实际宽度,在手机看还过得去,不会相差太远,但在平板电脑看, 它简直就是一个小女孩,太害羞了,以至于显示那么小. 回到正题: 解决方法: 1.获取手机分辨率 用该分辨率乘以其密度 if (file

略缩图

<!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, i

Android 获取图片exif信息

使用android api读取图片的exif信息 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_p

C#实现略缩图

public class GenerateThumbnail { private Image imageFrom; /// <summary> /// 源图的路径(含文件名及扩展名 /// </summary> /// <param name="pathImageFrom">源图的路径(含文件名及扩展名</param> public GenerateThumbnail(string pathImageFrom) { imageFrom =