首先需要创建一个可供编辑的 bitmap 对象,具体请参看创建一个可读可写的 bitmap 副本。
1 . 首先获得一个可读可写的 bitmap :
Bitmap bitmap = .......
2 . 然后创建 Canvas 对象 , 通过对 Matrix (矩阵)的操作进行变换:`
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
Matrix matrix = new Matrix();
/**Android本身已经封装一些简单的 matrix 变换的 api ,只需直接调用相关方法即可。如:
*平移:setTranslate(dx, dy);
*缩放:setScale(sx , sy , px , py);
*旋转:setRotate(degrees , px, py);
*/
//产生倒影(垂直翻转)效果的例子:
matrix.setScale(1, -1);
matrix.postTranslate(0, bitmap.getHeight());
//这里的 bitmap_else 也可以为第一步得到的 bitmap 自身。
canvas.drawBitmap(bitmap_else, matrix, paint);
3 .效果图:
其中上图为原图,下图为变换后的图片。