android图片处理总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.jacp.image.util;
import java.io.ByteArrayOutputStream;
import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable;
31
*
32
*Fra Baidu bibliotek@param bm
33
* @param scale
34
*
值小于则为缩小,否则为放大
35
* @return
36
*/
37
public static Bitmap resizeBitmap(Bitmap bm, float scale) {
38
Matrix matrix = new Matrix();
-1作者:jacpy.may@gmail.com
1.android 图像处理系列之一--Bitmap、Drawable 和 byte[]之间的相互转换
到年底了,却被公司劝退,很悲催!正好有时间把自己之前在 android 中对图片的处理资料整理一下,打算出一 个图片处理系列。 先来最简单的: android Bitmap、Drawable 和 byte[]之间的相互转换
1. android 图像处理系列之一--Bitmap、Drawable 和 byte[]之间的相互转换..................................................2 2. android 图像处理系列之二--图片旋转、缩放、反转........................................................................................ 3 3. android 图像处理系列之三--图片色调饱和度、色相、亮度处理.....................................................................6 4. android 图像处理系列之四--给图片添加边框(上)...................................................................................... 15 5. android 图像处理系列之五--给图片添加边框(中)...................................................................................... 19 6. android 图像处理系列之六--给图片添加边框(下)-图片叠加...................................................................21 7. android 图像处理系列之七--图片涂鸦,水印-图片叠加.............................................................................. 25 8. android 图像处理系列之八--图片特效处理之一-怀旧效果.......................................................................... 26 9. android 图像处理系列之九--图片特效处理之二-模糊效果.......................................................................... 28 10. android 图像处理系列之十--图片特效处理之三-锐化效果........................................................................ 33 11. android 图像处理系列之十一--图片特效处理之四-浮雕效果.....................................................................36 12. android 图像处理系列之十二--图片特效处理之五-底片效果.....................................................................38 13. android 图像处理系列之十三--图片特效处理之六-光照效果.....................................................................40 14. android 图像处理系列之十四--图片特效处理之七-图片叠加.....................................................................43 15. android 图像处理系列之十五--图片特效处理之八-光晕效果.....................................................................45 16. android 图像处理系列之十六--图片特效处理之九-条纹效果.....................................................................48 17. android 图像处理系列之十七--图片特效处理之十-国际象棋棋盘的绘制.................................................50 18. android 图像处理系列之十八--图片特效处理之十一-图片乾坤大挪移之图片裁剪组合.........................51 19. android 图像处理系列之十九--图片特效处理之十二-图片自由裁剪、人脸识别.....................................54 20. android 图像处理系列之二十--图片处理总结................................................................................................ 57
61
62
Matrix matrix = new Matrix();
63
matrix.postScale(scaleWidth, scaleHeight);
64
return Bitmap.createBitmap(BitmapOrg, 0, 0, width, height, matrix, true);
return drawable.getBitmap(); }
}
2.android 图像处理系列之二--图片旋转、缩放、反转
注意是反转,不是翻转。贴图: 原图:
处理后:
-3作者:jacpy.may@gmail.com
下面看代码:
1 package com.jacp.image.util;
2
3 import android.graphics.Bitmap;
65
}
66
67
/**
68
* 图片反转
69
*
70
* @param bm
71
* @param flag
72
*
0为水平反转,1为垂直反转
73
* @return
74
*/
75
public static Bitmap reverseBitmap(Bitmap bmp, int flag) {
-5作者:jacpy.may@gmail.com
4 import android.graphics.Matrix;
5
6 /** 7 * 图片处理
8*
9 * @author maylian7700@126.com
10 *
11 */
12 public class ImageHandler {
13
14
/**
15
* 图片旋转
16
*
17
* @param bmp
25
matrix.postRotate(degree);
26
return Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
27
}
28
29
/**
30
* 图片缩放
-4作者:jacpy.may@gmail.com
47
* @param w
48
*
缩小或放大成的宽
49
* @param h
50
*
缩小或放大成的高
51
* @return
52
*/
53
public static Bitmap resizeBitmap(Bitmap bm, int w, int h) {
54
Bitmap BitmapOrg = bm;
55
56
/** * Bitmap Drawable byte[] 数组之间转换 * @author maylian7700@126.com * */
public class ImageSwitch {
/** * Bitmap 转换成 byte 数组 * @param bmp * @return */
public static byte[] bitmap2Byte(Bitmap bmp) {
76
float[] floats = null;
77
switch (flag) {
78
case 0: // 水平反转
79
floats = new float[] { -1f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 1f };
int width = BitmapOrg.getWidth();
57
int height = BitmapOrg.getHeight();
58
59
float scaleWidth = ((float) w) / width;
60
float scaleHeight = ((float) h) / height;
return new BitmapDrawable(bmp); }
/** * BitmapDrawable 转换成 Bitmap * @param drawable * @return */
public static Bitmap drawable2Bitmap(BitmapDrawable drawable) {
public static Bitmap byte2Bitmap(byte[] buffer) {
return BitmapFactory.decodeByteArray(buffer, 0, buffer.length); }
/**
-2作者:jacpy.may@gmail.com
* Bitmap 转换成 Drawable * @param bmp * @return */ public static Drawable bitmap2Drawable(Bitmap bmp) {
18
*
要旋转的图片
19
* @param degree
20
*
图片旋转的角度,负值为逆时针旋转,正值为顺时针旋转
21
* @return
22
*/
23
public static Bitmap rotateBitmap(Bitmap bmp, float degree) {
24
Matrix matrix = new Matrix();
ByteArrayOutputStream baos = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); }
/** * 数组转换成 Bitmap * @param buffer * @return */
39
matrix.postScale(scale, scale);
40
return Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
41
}
42
43
/**
44
* 图片缩放
45
*
46
* @param bm
import java.io.ByteArrayOutputStream;
import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable;
31
*
32
*Fra Baidu bibliotek@param bm
33
* @param scale
34
*
值小于则为缩小,否则为放大
35
* @return
36
*/
37
public static Bitmap resizeBitmap(Bitmap bm, float scale) {
38
Matrix matrix = new Matrix();
-1作者:jacpy.may@gmail.com
1.android 图像处理系列之一--Bitmap、Drawable 和 byte[]之间的相互转换
到年底了,却被公司劝退,很悲催!正好有时间把自己之前在 android 中对图片的处理资料整理一下,打算出一 个图片处理系列。 先来最简单的: android Bitmap、Drawable 和 byte[]之间的相互转换
1. android 图像处理系列之一--Bitmap、Drawable 和 byte[]之间的相互转换..................................................2 2. android 图像处理系列之二--图片旋转、缩放、反转........................................................................................ 3 3. android 图像处理系列之三--图片色调饱和度、色相、亮度处理.....................................................................6 4. android 图像处理系列之四--给图片添加边框(上)...................................................................................... 15 5. android 图像处理系列之五--给图片添加边框(中)...................................................................................... 19 6. android 图像处理系列之六--给图片添加边框(下)-图片叠加...................................................................21 7. android 图像处理系列之七--图片涂鸦,水印-图片叠加.............................................................................. 25 8. android 图像处理系列之八--图片特效处理之一-怀旧效果.......................................................................... 26 9. android 图像处理系列之九--图片特效处理之二-模糊效果.......................................................................... 28 10. android 图像处理系列之十--图片特效处理之三-锐化效果........................................................................ 33 11. android 图像处理系列之十一--图片特效处理之四-浮雕效果.....................................................................36 12. android 图像处理系列之十二--图片特效处理之五-底片效果.....................................................................38 13. android 图像处理系列之十三--图片特效处理之六-光照效果.....................................................................40 14. android 图像处理系列之十四--图片特效处理之七-图片叠加.....................................................................43 15. android 图像处理系列之十五--图片特效处理之八-光晕效果.....................................................................45 16. android 图像处理系列之十六--图片特效处理之九-条纹效果.....................................................................48 17. android 图像处理系列之十七--图片特效处理之十-国际象棋棋盘的绘制.................................................50 18. android 图像处理系列之十八--图片特效处理之十一-图片乾坤大挪移之图片裁剪组合.........................51 19. android 图像处理系列之十九--图片特效处理之十二-图片自由裁剪、人脸识别.....................................54 20. android 图像处理系列之二十--图片处理总结................................................................................................ 57
61
62
Matrix matrix = new Matrix();
63
matrix.postScale(scaleWidth, scaleHeight);
64
return Bitmap.createBitmap(BitmapOrg, 0, 0, width, height, matrix, true);
return drawable.getBitmap(); }
}
2.android 图像处理系列之二--图片旋转、缩放、反转
注意是反转,不是翻转。贴图: 原图:
处理后:
-3作者:jacpy.may@gmail.com
下面看代码:
1 package com.jacp.image.util;
2
3 import android.graphics.Bitmap;
65
}
66
67
/**
68
* 图片反转
69
*
70
* @param bm
71
* @param flag
72
*
0为水平反转,1为垂直反转
73
* @return
74
*/
75
public static Bitmap reverseBitmap(Bitmap bmp, int flag) {
-5作者:jacpy.may@gmail.com
4 import android.graphics.Matrix;
5
6 /** 7 * 图片处理
8*
9 * @author maylian7700@126.com
10 *
11 */
12 public class ImageHandler {
13
14
/**
15
* 图片旋转
16
*
17
* @param bmp
25
matrix.postRotate(degree);
26
return Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
27
}
28
29
/**
30
* 图片缩放
-4作者:jacpy.may@gmail.com
47
* @param w
48
*
缩小或放大成的宽
49
* @param h
50
*
缩小或放大成的高
51
* @return
52
*/
53
public static Bitmap resizeBitmap(Bitmap bm, int w, int h) {
54
Bitmap BitmapOrg = bm;
55
56
/** * Bitmap Drawable byte[] 数组之间转换 * @author maylian7700@126.com * */
public class ImageSwitch {
/** * Bitmap 转换成 byte 数组 * @param bmp * @return */
public static byte[] bitmap2Byte(Bitmap bmp) {
76
float[] floats = null;
77
switch (flag) {
78
case 0: // 水平反转
79
floats = new float[] { -1f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 1f };
int width = BitmapOrg.getWidth();
57
int height = BitmapOrg.getHeight();
58
59
float scaleWidth = ((float) w) / width;
60
float scaleHeight = ((float) h) / height;
return new BitmapDrawable(bmp); }
/** * BitmapDrawable 转换成 Bitmap * @param drawable * @return */
public static Bitmap drawable2Bitmap(BitmapDrawable drawable) {
public static Bitmap byte2Bitmap(byte[] buffer) {
return BitmapFactory.decodeByteArray(buffer, 0, buffer.length); }
/**
-2作者:jacpy.may@gmail.com
* Bitmap 转换成 Drawable * @param bmp * @return */ public static Drawable bitmap2Drawable(Bitmap bmp) {
18
*
要旋转的图片
19
* @param degree
20
*
图片旋转的角度,负值为逆时针旋转,正值为顺时针旋转
21
* @return
22
*/
23
public static Bitmap rotateBitmap(Bitmap bmp, float degree) {
24
Matrix matrix = new Matrix();
ByteArrayOutputStream baos = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); }
/** * 数组转换成 Bitmap * @param buffer * @return */
39
matrix.postScale(scale, scale);
40
return Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
41
}
42
43
/**
44
* 图片缩放
45
*
46
* @param bm