zoukankan      html  css  js  c++  java
  • 缩放图片

    //使用Bitmap加Matrix来缩放
    public static Drawable resizeImage(Bitmap bitmap, int w, int h)
    {
    Bitmap BitmapOrg = bitmap;
    int width = BitmapOrg.getWidth();
    int height = BitmapOrg.getHeight();
    int newWidth = w;
    int newHeight = h;

    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);
    // if you want to rotate the Bitmap
    // matrix.postRotate(45);
    Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,
    height, matrix, true);
    return new BitmapDrawable(resizedBitmap);
    }

    //使用BitmapFactory.Options的inSampleSize参数来缩放
    public static Drawable resizeImage2(String path,
    int width,int height)
    {
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;//不加载bitmap到内存中
    BitmapFactory.decodeFile(path,options);
    int outWidth = options.outWidth;
    int outHeight = options.outHeight;
    options.inDither = false;
    options.inPreferredConfig = Bitmap.Config.ARGB_8888;
    options.inSampleSize = 1;

    if (outWidth != 0 && outHeight != 0 && width != 0 && height != 0)
    {
    int sampleSize=(outWidth/width+outHeight/height)/2;
    Log.d(tag, "sampleSize = " + sampleSize);
    options.inSampleSize = sampleSize;
    }

    options.inJustDecodeBounds = false;
    return new BitmapDrawable(BitmapFactory.decodeFile(path, options));
    }

  • 相关阅读:
    解决hung_task_timeout_secs问题【方法待校验】
    C++面向对象程序设计 学习心得
    试水训练1
    并查集
    ACM儿童节热身训练
    图论部分学习小结
    ACM儿童节热身训练
    堆及其应用学习小结
    ACM本周小结
    POJ-3273-Monthly Expense
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4862408.html
Copyright © 2011-2022 走看看