• 轻松看懂如何通过调整Bitmap来调整图片尺寸


    /*new_w:想要得到的图片尺寸宽;new_h:想要得到的图片尺寸高

    bitmap:输入的Bitmap型变量

     

    public static Bitmap imageScale(Bitmap bitmap, int new_w,new_h) {

    //先通过Bitmap对象调用getWidth(),getHeight();方法得到原始输入bitmap的尺寸(也就是原始没改变尺寸之前的图片宽和高)

    //这里如果你已经知道你的输入尺寸为多大,也可以直接替换int型整数,但是建议用代码原始尺寸

                           int src_w = bitmap.getWidth();
                           int src_h = bitmap.getHeight();

    //获取缩放比例,拿原始输入的长宽和想要缩放的长宽求比例,注意谁在前谁在后都可以,例如最终希望的尺寸在分子,原始尺寸在分母,比值大于一,说明获取的是放大比例;小于一,则是缩小比例

    //同理,分子和分母相反,原始图像尺寸在分子,要得到的尺寸在分母,若比值大于一,则获取的是缩小比例,反之获取的是放大比例
                          float scale_w = ((float) new_w) / src_w;
                          float scale_h = ((float) new_h) / src_h;

    //新建Matrix类的一个对象,用来存储变换后的像素矩阵值,暂时存储作用
                          Matrix matrix = new Matrix();

    //利用矩阵类对象调用方法postScale进行尺度变换,两个参数为尺度变换的宽,高对应的缩放比例
                         matrix.postScale(scale_w, scale_h);

    //科普一下,如果想要旋转图像,则用矩阵类对象调用方法postRotate(float a);其中参数a是需要旋转的角度,如matrix.postRotate(45);

    //再调用Bitmap类中的方法createBitmap( bitmap,0,0,src_w, src_h, matrix,true),解释一下,第一个参数是传进来原始的Bitmap,两个参数0暂时用不到,src_w, src_h原图像的尺寸;尺寸变换后的矩阵变量,后面true,返回的也是Bitmap对象
                         Bitmap bihuanbmp = Bitmap.createBitmap(bitmap, 0, 0, src_w, src_h, matrix,true);

                         return  bihuanbmp ;

    //补充,上面我返回的是Bitmap类型,我工作的需要,如果大家需要直接将Bitmap类输出为图片,直接加上return new BitmapDrawable(bihuanbmp);当然如果返回的是BitmapDrawable(bihuanbmp),则方法前面返回的就不是Bitmap类型,应该改为Drawable
    }

     

  • 相关阅读:
    文件上传中的错误文件上传及其命名
    播放音乐
    文件的读取与写入ASP.NET中常用代码之四(转载)
    Spring中文在线文档
    Css 图形
    离职进行时
    又面试了
    在Spring应用中创建全局获取ApplicationContext对象
    开始研究WEKA,一个开源java的数据挖掘工具
    收到SZ科技的录取通知,纠结是不是要去
  • 原文地址:https://www.cnblogs.com/rhp2lmy1314/p/10905751.html
Copyright © 2020-2023  润新知