对图片进行特效处理

##对图片进行特效处理(熟悉)
* 首先定义一个矩阵对象
 
Matrix mt = new Matrix();
* 缩放效果
 
//x轴缩放1倍,y轴缩放0.5倍
mt.setScale(1, 0.5f);
 
* 旋转效果
 
//以copyBm.getWidth() / 2, copyBm.getHeight() / 2点为轴点,顺时旋转30度
mt.setRotate(30, copyBm.getWidth() / 2, copyBm.getHeight() / 2);
* 平移
 
//x轴坐标+10,y轴坐标+20
mt.setTranslate(10, 20);
* 镜面
 
//把X坐标都变成负数
mt.setScale(-1, 1);
//图片整体向右移
        mt.postTranslate(copyBm.getWidth(), 0);
* 倒影
 
//把Y坐标都变成负数
mt.setScale(1, -1);
//图片整体向下移
        mt.postTranslate(0, copyBm.getHeight());
 
 
部分代码:
 
//加载原图
Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.photo3);
 
//创建副本
//1.创建与原图一模一样大小的bitmap对象,该对象中目前是没有内容的,可以比喻为创建了和原图一样大小的白纸
Bitmap bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());
//2.创建画笔对象
Paint paint = new Paint();
//3.创建画板,把白纸铺到画板上
Canvas canvas = new Canvas(bmCopy);
 
Matrix mt = new Matrix();
 
//平移效果,指定平移距离
// mt.setTranslate(20, 10);
//缩放效果,指定缩放比例
// mt.setScale(2, 0.5f, bmCopy.getWidth() / 2, bmCopy.getHeight() / 2);
//旋转效果
// mt.setRotate(45, bmCopy.getWidth() / 2, bmCopy.getHeight() / 2);
 
//镜面效果
// mt.setScale(-1, 1);
// mt.postTranslate(bmCopy.getWidth(), 0);
 
//倒影效果
mt.setScale(1, -1);
mt.postTranslate(0, bmCopy.getHeight());
 
canvas.drawBitmap(bmSrc, mt, paint);
 
ImageView iv_src = (ImageView) findViewById(R.id.iv_src);
iv_src.setImageBitmap(bmSrc);
ImageView iv_copy = (ImageView) findViewById(R.id.iv_copy);
iv_copy.setImageBitmap(bmCopy);

转载于:https://www.cnblogs.com/SoulCode/p/6393346.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值