展会信息港展会大全

Android图片处理方法
来源:互联网   发布日期:2016-01-14 12:25:04   浏览:2345次  

导读:通过传入图片url获取位图方法public Bitmap returnBitMap(String url) { URL myFileUrl = null; Bitmap bitmap = null; try { myFileUrl = new URL(url); } catch (MalformedURLException ......

通过传入图片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, xline * w, yrow * h, paint);

g.restore();

}

赞助本站

人工智能实验室

相关热词: Android 图片处理 方法

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港