现在的位置: 首页 > 综合 > 正文

【bitmap】Android图片处理方法

2017年12月05日 ⁄ 综合 ⁄ 共 1975字 ⁄ 字号 评论关闭

通过传入图片url获取位图方法

public Bitmap returnBitMap(String url) {

    URL myFileUrl = null;

    Bitmap bitmap = null;

     

    try {

         myFileUrl = new URL(url);

    }

    catch (MalformedURLException e) {

         e.printStackTrace();

    }

     

    try {

         HttpURLConnection conn = (HttpURLConnection) myFileUrl

         .openConnection();

         conn.setDoInput(true);

         conn.connect();

         InputStream is = conn.getInputStream();

         bitmap = BitmapFactory.decodeStream(is);

         is.close();

    }

    catch (IOException e) {

         e.printStackTrace();

    }

     

    Log.v(tag, bitmap.toString());

     

    return bitmap;

}

------------------------------------------------------------
通过传入位图,新的宽、高比进行位图的缩放操作

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;
    Log.v(tag, String.valueOf(width));

    Log.v(tag, String.valueOf(height));

    Log.v(tag, String.valueOf(newWidth));

    Log.v(tag, String.valueOf(newHeight));

    // calculate the scale

    float scaleWidth = ((float) newWidth) / width;

    float scaleHeight = ((float) newHeight) / height;

    // create a matrix for the manipulation

    Matrix matrix = new Matrix();

    // resize the Bitmap


    matrix.postScale(scaleWidth, scaleHeight);


    // if you want to rotate the Bitmap


    // matrix.postRotate(45);


 


    // recreate the new Bitmap


    Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,


    height, matrix, true);


 


    // make a Drawable from Bitmap to allow to set the Bitmap


    // to the ImageView, ImageButton or what ever


    return new BitmapDrawable(resizedBitmap);


}

-------------------------------------------------------
加载本地图片

/*


 *@param context:主运行函数实例


 *@param bitAdress:图片地址,一般指向R下的drawable目录


 *@return


 */


public final Bitmap CreatImage(Context context, int bitAdress) {


    Bitmap bitmaptemp = null;


    bitmaptemp = BitmapFactory.decodeResource(context.getResources(),bitAdress);


    return bitmaptemp;


}

------------------------------------------------------
图片平均分割方法,将大图平均分割为N行N列,方便用户使用

/*


 * @param g :画布  paint:画笔   imgBit:图片   x 


 *  x:X轴起点坐标  y:Y轴起点坐标  w:单一图片的宽度  h:单一图片的高度 line:第几列  row:第几行


 */


public final void cutImage(Canvas g, Paint paint, Bitmap imgBit, int x, int y, int w, int h, int line, int row) {


    g.clipRect(x, y, x + w, h + y);


    g.drawBitmap(imgBit, x – line * w, y – row * h, paint);


    g.restore();


}

抱歉!评论已关闭.