分享一个Android图片转换类 1. Bitmap去色,转换为黑白的灰度图, 2. Bitmap图片加圆角效果(转)
/**
2
* 处理图片的工具类.
3
*
4
*/
5
public class ImageTools {
6
7
/**
8
* 图片去色,返回灰度图片
9
* @param bmpOriginal 传入的图片
10
* @return 去色后的图片
11
*/
12
public static Bitmap toGrayscale(Bitmap bmpOriginal) {
13
int width, height;
14
height = bmpOriginal.getHeight();
15
width = bmpOriginal.getWidth();
16![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
17
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
18
Canvas c = new Canvas(bmpGrayscale);
19
Paint paint = new Paint();
20
ColorMatrix cm = new ColorMatrix();
21
cm.setSaturation(0);
22
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
23
paint.setColorFilter(f);
24
c.drawBitmap(bmpOriginal, 0, 0, paint);
25
return bmpGrayscale;
26
}
27
28
29
/**
30
* 去色同时加圆角
31
* @param bmpOriginal 原图
32
* @param pixels 圆角弧度
33
* @return 修改后的图片
34
*/
35
public static Bitmap toGrayscale(Bitmap bmpOriginal, int pixels) {
36
return toRoundCorner(toGrayscale(bmpOriginal), pixels);
37
}
38
39
/**
40
* 把图片变成圆角
41
* @param bitmap 需要修改的图片
42
* @param pixels 圆角的弧度
43
* @return 圆角图片
44
*/
45
public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
46![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
47
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
48
.getHeight(), Config.ARGB_8888);
49
Canvas canvas = new Canvas(output);
50![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
51
final int color = 0xff424242;
52
final Paint paint = new Paint();
53
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
54
final RectF rectF = new RectF(rect);
55
final float roundPx = pixels;
56![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
57
paint.setAntiAlias(true);
58
canvas.drawARGB(0, 0, 0, 0);
59
paint.setColor(color);
60
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
61![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
62
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
63
canvas.drawBitmap(bitmap, rect, rect, paint);
64![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
65
return output;
66
}
67![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
68
69
/**
70
* 使圆角功能支持BitampDrawable
71
* @param bitmapDrawable
72
* @param pixels
73
* @return
74
*/
75
public static BitmapDrawable toRoundCorner(BitmapDrawable bitmapDrawable, int pixels) {
76
Bitmap bitmap = bitmapDrawable.getBitmap();
77
bitmapDrawable = new BitmapDrawable(toRoundCorner(bitmap, pixels));
78
return bitmapDrawable;
79
}
80
}
2
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
3
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
4
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
7
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
9
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
10
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
11
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
12
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
14
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
15
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
16
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
17
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
18
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
19
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
20
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
21
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
22
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
23
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
24
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
25
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
26
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
28
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
29
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
30
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
31
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
32
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
33
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
34
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
35
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
36
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
37
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
38
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
39
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
40
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
41
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
42
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
43
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
44
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
45
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
46
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
47
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
48
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
49
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
50
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
51
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
52
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
53
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
54
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
55
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
56
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
57
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
58
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
59
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
60
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
61
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
62
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
63
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
64
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
65
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
66
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
67
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
68
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
69
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
70
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
71
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
72
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
73
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
74
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
75
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
76
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
77
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
78
![](http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif)
79
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
80
![](http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif)