因项目预研需要,采用android camera2进行前置、后置摄像头拍照、拍视频,在用前置摄像头进行拍照时,照片预览是正的,保存本地照片也是正的,只不过照片里的内容进行了左右镜像,现在需要将照片里的内容再左右镜像回来,找了很多的方法,以下两种亲测可行:

第一种:

Bitmap oldMap = BitmapFactory.decodeFile(mFile.getAbsolutePath());
matrix.setScale(-1.0f, 1.0f);
oldMap = Bitmap.createBitmap(oldMap, 0, 0, oldMap.getWidth(), oldMap.getHeight(), matrix, true);
try {FileOutputStream out = new FileOutputStream(mFile);oldMap.compress(Bitmap.CompressFormat.JPEG, 100, out);out.flush();out.close();
} catch (Exception e) {e.printStackTrace();
}

第二种:

Bitmap oldMap = BitmapFactory.decodeFile(mFile.getAbsolutePath());
Paint paint=new Paint();
Bitmap newMap= Bitmap.createBitmap(oldMap.getWidth(), oldMap.getHeight(), Bitmap.Config.RGB_565);
Canvas canvas=new Canvas(newMap);
canvas.drawColor(Color.WHITE);
Matrix matrix=new Matrix();
matrix.setScale(-1.0f, 1.0f);
matrix.postTranslate(oldMap.getWidth(), 0);
canvas.drawBitmap(oldMap, matrix, paint);
try {FileOutputStream out = new FileOutputStream(mFile);newMap.compress(Bitmap.CompressFormat.JPEG, 100, out);out.flush();out.close();
} catch (Exception e) {e.printStackTrace();
}

同理,用前置摄像头拍摄视频时,不仅保存的视频是倒的,视频内容也进行了左右镜像翻转,需要将拍摄的视频旋转及镜像翻转回来,由于初次接触,找了很多的资料,终于找到一个亲测可行的方法,如下:

1.在build.gradle里添加:

allprojects {repositories {maven { url 'https://jitpack.io' }}
}

2.添加gradle依赖

compile 'com.github.yangjie10930:EpMedia:v0.9.5'

3.视频处理

EpVideo epVideo = new EpVideo(mNextVideoAbsolutePath);
//视频旋转180度,再镜像
epVideo.rotation(180, true);
EpEditor.exec(epVideo, new EpEditor.OutputOption(getVideoFilePath(getContext())), new OnEditorListener() {@Overridepublic void onSuccess() {Log.e(TAG, "EpEditor onSuccess");}@Overridepublic void onFailure() {Log.e(TAG, "EpEditor onFailure");}@Overridepublic void onProgress(float progress) {Log.e(TAG, "EpEditor onProgress " + progress);}});

具体参考:

1.EpMedia

2.将FFmpeg移植到Android平台

3.FFmpegAndroid

4.在Android项目中调用FFmpeg命令

Android实现本地图片、视频左右镜像翻转相关推荐

  1. Android 删除本地图片

    以前没有写博客的习惯  换了公司之后 事情慢慢变多  也需要掌握很多的新的我不知道知识   遇到很多问题  网上各种百度  好不容易遇到可以修复bug的博客   这次用完关掉   以后遇到还需要重新百 ...

  2. Android 广告机图片视频轮播

    最近因为要做一个广告机上图片视频轮播,所以又是百度,github上一堆找,结果发现并没有特别合适的,不是播放视频首帧黑屏,就是切换界面后,没法继续播放,或者动态更新数据后,没法继续轮播等等问题,所以最 ...

  3. Android获取本地图片缩略图终极解决方案

    QAQ学Android真的还是要在项目中获得锻炼,脱离实际一切都是耍流氓哼唧~! 花了一下午时间搞定了项目中要实现的:获取本地图片缩略图并显示在ListView上的,并且点击要能获得该图片文件路径功能 ...

  4. Android 自定义本地图片加载库,仿微信相册

    总结一下微信的本地图片加载有以下几个特点,也是提高用户体验的关键点 1.缩略图挨个加载,一个一个加载完毕,直到屏幕所有缩略图都加载完成 2.不等当前屏的所有缩略图加载完,迅速向下滑,滑动停止时立即加载 ...

  5. android设置本地图片,Android设置头像,手机拍照或从本地相册选取图片作为头像...

     [Android设置头像,手机拍照或从本地相册选取图片作为头像] 像微信.QQ.微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式: 1,让用户通过选择本地相册之类的图片库中已 ...

  6. android获取本地图片并显示图片

    亲测可用,若有疑问请私信 import java.io.FileNotFoundException;import android.content.ContentResolver; import and ...

  7. android删除本地图片,Android中结合contentResolver.delete和file.delete实现本地图片的删除...

    最近做的一个需求是:将拍照或相册的图片上传服务器后删除对应的本地图片.在实现这个简单的需求的过程中却碰到了两个意想不到的问题. 这两个问题源自于删除本地图片时选用的两个不同的方法 file.delet ...

  8. Android 读取本地图片

    创建一个工具类 :FileUtil package com.example.testUtil;import java.io.File; //从本地读取图片 public class FileUtil ...

  9. android glide本地图片,Glide下载图片并保存到本地

    活不多说 上代码: Observable.create(new ObservableOnSubscribe() { @Override public void subscribe(Observable ...

  10. android删除本地图片,Android之删除图库照片

    相关文章:Android手机读取相册图片,根据URI获取图片路径 从图库获取的Uri:content://media/external/images/media/20782 Uri uri = dat ...

最新文章

  1. 在 aws emr 上,将 hbase table A 的数据,对 key 做 hash,写到另外一张 table B
  2. SAP信贷出口(用户1,2,3)
  3. Linux:chmod命令-修改文件或目录的权限
  4. P1616 疯狂的采药(洛谷,动态规划递推,完全背包)
  5. 微信x漫威首款小程序公开!揭露未来“看展”趋势
  6. mysql 导出所有函数_mysql 导入导出 包括函数或者存储过程
  7. 云服务器zabbix server报错:Lack of free swap on Zabbix server
  8. ST环境进行测试时,事前需要考虑的问题
  9. 【重点!记忆化递归+DP】LeetCode 72. Edit Distance
  10. python的文件夹里面有什么_Python的文件及文件夹操作
  11. 华为模拟eNSP器交换机简单开具以及基础命令
  12. 运行java比较好的浏览器_国内好的pc浏览器评测
  13. R-CNN 原理详解
  14. 201671010406 词频统计软件项目报告
  15. 职场分享:职场生涯中我们经常面临的一些困惑
  16. 嵌入式的应用领域有哪些呢?
  17. 常见的导数公式及证明
  18. Dreamweaver中如何调整同行图片的距离
  19. Idea插件开发(二)——插件的创建打包及发布
  20. 电子与通信工程专硕考分_2021年华北电力大学电子与通信工程专硕考研必看成功上岸前辈复习经验分享...

热门文章

  1. 看图工具MassiGra使用指南
  2. 禁止服务器windows的自动更新,Windows Server2016等服务器禁止自动更新及更新后自动重启的方法...
  3. 2013年13寸Macbook Air 安装单windows 10系统
  4. linux 时间 time(2)-频率(时钟周期/指令周期/CPU周期)和 jiffies
  5. C语言:数组数据移动
  6. 关于elasticsearch属性not_analyzed,坑
  7. 三分钟搭建单节点私链教程
  8. 【Chrome】678- Chrome插件开发全攻略
  9. linux脚本的注释符号是什么,Shell中的变量和符号
  10. 入门易精通难的Unity要如何学