zoukankan      html  css  js  c++  java
  • Android位图相关解码操作

    public class BitMapTools {

     

        /**

         * 对图片进行解码操作

         *

         * @param resource

         * 资源文件

         * @param resId

         * 解码位图的iD

         * @param reqWidt

         * 指定输出位图的宽度

         * @param reqHight

         * 制定输出位图的高度

         * @return

         */

        public static Bitmap decodeBitmap(Resources resource, int resId,

                int reqWidth, int reqHight) {

            // 对位图进行解码的参数设置

            BitmapFactory.Options option = new BitmapFactory.Options();

            // 在对位图进行解码的过程中,避免申请内存

            option.inJustDecodeBounds = true;

            BitmapFactory.decodeResource(resource, resId, option);

            //对图片进行压缩

            option.inSampleSize = calculateInSimpleSize(option, reqWidth, reqHight);

            option.inJustDecodeBounds = false;

            return BitmapFactory.decodeResource(resource, resId, option);

        }

     

        /**

         * 计算相关压缩比例

         * @param option

         * @param reqWidth

         * @param reqHight

         * @return

         */

        public static int calculateInSimpleSize(BitmapFactory.Options option,

                int reqWidth, int reqHight) {

            // 获取图片的原始宽高

            int imageHight = option.outHeight;

            int imageWidht = option.outWidth;

     

            // 压缩比例

            int inSimpleSize = 1;

            if (imageHight > reqHight || imageWidht > reqWidth) {

                final int heightRatio = Math.round(1.0f * imageHight / reqHight);

                final int widthRatio = Math.round(1.0f * imageWidht / reqWidth);

                inSimpleSize = heightRatio < widthRatio ? heightRatio : widthRatio;

            }

            return inSimpleSize;

        }

    }

  • 相关阅读:
    CodeForces Gym 100500A A. Poetry Challenge DFS
    CDOJ 486 Good Morning 傻逼题
    CDOJ 483 Data Structure Problem DFS
    CDOJ 482 Charitable Exchange bfs
    CDOJ 481 Apparent Magnitude 水题
    Codeforces Gym 100637G G. #TheDress 暴力
    Gym 100637F F. The Pool for Lucky Ones 暴力
    Codeforces Gym 100637B B. Lunch 找规律
    Codeforces Gym 100637A A. Nano alarm-clocks 前缀和
    TC SRM 663 div2 B AABB 逆推
  • 原文地址:https://www.cnblogs.com/Yellow0-0River/p/4240080.html
Copyright © 2011-2022 走看看