在谷歌上搜索faceMorph filetype:ppt可以搜索出和人脸变换相关的一些PPT资料。
code.google.com是谷歌的代码网站
github.com
play.google.com
图形变换的一些代码:
public class MainActivity extends Activity {
private ImageView iv1,iv2;
private Bitmap alterBitmap;
private Bitmap srcBmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);
//给第一个imageview默认设置一个位图
srcBmp = BitmapFactory.decodeResource(getResources(), R.drawable.tomcat);
iv1.setImageBitmap(srcBmp);
//创建原图的一个副本。 可修改 创建的是一个空白的图形。
alterBitmap = Bitmap.createBitmap(srcBmp.getWidth(), srcBmp.getHeight(),srcBmp.getConfig());
}
/**
* 创建原图 bm的一个拷贝。副本
* @param view
*/
public void click(View view){
//1.准备一个画板 在上面放上准备好的 空白的位图
Canvas canvas = new Canvas(alterBitmap);
//2.准备一个画笔
Paint paint = new Paint();
paint.setColor(Color.BLACK);
//3.画画
Matrix m = new Matrix(); //变换矩阵,默认情况下不改变形状
m.setRotate(180, srcBmp.getWidth()/2, srcBmp.getHeight()/2); 顺时针旋转180度,后面两个参数是旋转中心的横坐标和纵坐标
canvas.drawBitmap(srcBmp, m, paint);
iv2.setImageBitmap(alterBitmap);//把原图的副本设置到界面上。
}
}
event.getX() 距图片原点的x坐标
event.getRawX() 距屏幕顶点的x坐标