android bitmap 反转,Andrid bitmap的镜像3D翻转(绕x轴 Y轴)

图片的3D翻转借助的是android.graphics.Camera类来实现的。理论上来说应该也可以通过矩阵变换来实现,希望有高手能够指出。下面附上代码:

import android.graphics.Camera;

private Camera camera;

camera = new Camera();

/**

* 翻转图片

*

* @param isLeftOrRight

*/

private void roatePicture(boolean isLeftOrRight, Bitmap bitmap) {

camera.save();

Matrix matrix = new Matrix();

// rotate

if (isLeftOrRight) {

camera.rotateY(180);

} else {

camera.rotateX(180);

}

camera.getMatrix(matrix);

// 恢复到之前的初始状态。

camera.restore();

// 设置图像处理的中心点

matrix.preTranslate(bitmap.getWidth() >> 1, bitmap.getHeight() >> 1);

//    matrix.preSkew(10, 10);

matrix.postTranslate(bitmap.getWidth(), bitmap.getHeight());

// matrix.postSkew(skewX, skewY);

// 直接setSkew(),则前面处理的rotate()、translate()等等都将无效。

// matrix.setSkew(skewX, skewY);

// 2.通过矩阵生成新图像(或直接作用于Canvas)

Bitmap newBit = null;

try {

// 经过矩阵转换后的图像宽高有可能不大于0,此时会抛出IllegalArgumentException

newBit = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);

} catch (IllegalArgumentException iae) {

iae.printStackTrace();

}

if (newBit != null) {

//            show_image.mImageView.setLayout(false);

show_image.setImageBitmap(newBit);

tempBitmap = newBit;

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值