您的位置:首页 > 移动开发 > Android开发

android开发自定义相机镜像问题

2018-01-08 17:05 337 查看
第一次写博客,之前一直是没有写博客的习惯。希望多多支持。

言归正传。

最近在做一个项目,需要自定义一个拍照功能。做完后发现,使用前置摄像头拍照,保存到本地以后,去相册查看发现保存的是原图。效果:拍的IX保存后是XI.

按道理来说这样是没有问题的,拍的什么保存的就是什么。这样是没问题的。但是总觉得很是别扭。

于是找了很多有关拍照保存图片的文章。也么有找到自己想要的。

最后在一篇博客中看到这样一个效果(实现镜像效果)的文章:http://blog.csdn.net/lovoo/article/details/51429563

灵机一动,将拍照后的图片转成镜像保存,结果就真的实现了,问题也就解决了。

最后就加了两行代码问题就解决了。记录下希望帮助更多人。有什么好的方式也希望多多指点。

//镜子效果
matrix.setScale(-1, 1);
matrix.postTranslate(bitmap.getWidth(), 0);


下面是我项目里面的主要代码:

try {
if (cameraPosition == 0) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
Matrix matrix = new Matrix();
//镜子效果 matrix.setScale(-1, 1); matrix.postTranslate(bitmap.getWidth(), 0);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth()
, bitmap.getHeight(), matrix, true);
saveImageToGallery(getBaseContext(), bitmap);

} else {
// 获取Jpeg图片,并保存在sd卡上
String fileName = System.currentTimeMillis() + ".jpg";
File file = new File(Environment.getExternalStorageDirectory(), fileName);
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
fos.close();
// 其次把文件插入到系统图库
MediaStore.Images.Media.insertImage(CameraActivity.this.getContentResolver()
, file.getAbsolutePath(), fileName, null);
// 最后通知图库更新
CameraActivity.this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE
, Uri.parse("file://" + file)));

}
mCamera.stopPreview();
mCamera.startPreview();
} catch (Exception e) {
Log.d(TAG, "保存图片失败:::" + e.getLocalizedMessage());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐