欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Android 截取图片正中间,,功能:给定图片维持宽高比

来源: javaer 分享于  点击 17441 次 点评:100

Android 截取图片正中间,,功能:给定图片维持宽高比


功能:给定图片维持宽高比缩放后,截取正中间的正方形部分

    /**        * @param bitmap      原图        * @param edgeLength  希望得到的正方形部分的边长        * @return  缩放截取正中部分后的位图。        */        public static Bitmap centerSquareScaleBitmap(Bitmap bitmap, int edgeLength)        {         if(null == bitmap || edgeLength <= 0)         {          return  null;         }         Bitmap result = bitmap;         int widthOrg = bitmap.getWidth();         int heightOrg = bitmap.getHeight();         if(widthOrg > edgeLength &amp;&amp; heightOrg > edgeLength)         {          //压缩到一个最小长度是edgeLength的bitmap          int longerEdge = (int)(edgeLength * Math.max(widthOrg, heightOrg) / Math.min(widthOrg, heightOrg));          int scaledWidth = widthOrg > heightOrg ? longerEdge : edgeLength;          int scaledHeight = widthOrg > heightOrg ? edgeLength : longerEdge;          Bitmap scaledBitmap;                try{                 scaledBitmap = Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true);                }                catch(Exception e){                 return null;                }             //从图中截取正中间的正方形部分。             int xTopLeft = (scaledWidth - edgeLength) / 2;             int yTopLeft = (scaledHeight - edgeLength) / 2;             try{              result = Bitmap.createBitmap(scaledBitmap, xTopLeft, yTopLeft, edgeLength, edgeLength);              scaledBitmap.recycle();             }             catch(Exception e){              return null;             }                }         return result;        }  
相关栏目:

用户点评