Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决

这两天编程弄Android照相机模块,设置好各种参数后,发现预览的时候,照片是颠倒了,不是上下颠倒而是颠倒90°。 我的手机是华为U9200,用的Android4.0.3,后来看到http://www.cnblogs.com/skyseraph/archive/2012/03/26/2418665.html这篇文章,增加代码:myCamera.setDisplayOrientation(90); 然后预览就正常了。但是拍摄的照片在电脑上打开一看,仍然是倾斜的。倾斜了90°,后来加上这句:myParameters.set("rotation", 90); 这个是让照片旋转90°一切正常了! 之前设了很多//myParameters.set("orientation", "portrait");或//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);发现都没有作用。就差上面那两句话!

如何查看自己的摄像头支持的PreviewSize和 PictureSize呢?这里简单说下,PreviewSize是预览的大小,也就是拍照前看到的图片大小,你可以试一下,这个参数设置不同,在同样焦距下,你拍摄桌子上一个固定距离的一个东西,看到的视野会不同。PictureSize是指最终拍摄到的图片的大小,也就是图片的质量。怎么查看呢?

首先在主程序的开始private static final String TAG = "MyAndroid";

然后: List pictureSizes ;
       List previewSizes;

for (int i = 0; i < pictureSizes.size(); i++)
{  
psize = pictureSizes.get(i);
Log.i(TAG +"initCamera", "PictrueSize,width: " + psize.width + " height" + psize.height);
}
for (int i = 0; i < previewSizes.size(); i++)
{  
psize = previewSizes.get(i);
Log.i(TAG +"initCamera", "previewSize,width: " + psize.width + " height" + psize.height);
}

就可以查看了!

我的PictureSize的参数分别是:

预览的参数是:

但我想得到最终是宽度为600,高度为800的图片。怎么半呢?  这里要说明下,由于前面的myParameters.set("rotation", 90); 你如果设置照相机PictureSize的参数是M*N,得到的图片大小是N*M,因为你旋转了。怎么才能得到我想要的指定大小的图片呢,

FileOutputStream fout = new FileOutputStream(fTest);
BufferedOutputStream bos = new BufferedOutputStream(fout);
Bitmap mBitmap = Bitmap.createScaledBitmap(bm, 600, 800, true);
mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);

//bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);

加上红色部分的代码就可以了。bm是最初的照片数据,是个Bitmap。 如果您想得到原始大小,就把红色去掉,把最后一句加上来就可以了。

时间: 2024-08-28 12:01:54

Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决的相关文章

照片颠倒问题及查询摄像头参数问题的解决

Parameters params = mCamera.getParameters(); // params.setPreviewSize(width, height); params.set("rotation", 90); -- 解决:拍摄的照片在电脑上打开一看,仍然是倾斜的.倾斜了90° mCamera.setParameters(params); mCamera.setDisplayOrientation(90); --解决:预览的时候,照片是颠倒了,不是上下颠倒而是颠倒90°

React Native Android原生模块开发实战|教程|心得|如何创建React Native Android原生模块

尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 前言 一直想写一下我在React Native原生模块封装方面的一些经验和心得,来分享给大家,但实在抽不开身,今天看了一下日历发现马上就春节了,所以就赶在春节之前将这篇博文写好并发布(其实是两篇:要看iOS篇的点这里<React Native iOS原生模块开发>). 我平时在用React Native开发App时会

React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块

尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息.为大家精心准备的React Native视频教程公布了,大家现能够看视频学React Native了. 前言 一直想写一下我在React Native原生模块封装方面的一些经验和心得.来分享给大家,但实在抽不开身.今天看了一下日历发现立即就春节了.所以就赶在春节之前将这篇博文写好并公布(事实上是两篇

Android HAL模块实现

1. HAL介绍 Android的HAL(Hardware Abstract Layer硬件抽象层)是为了保护一些硬件提供商的知识产权而提出的.是为了避开linux的GPL束缚. 思路是把控制硬件的动作都放到了Android HAL中,而linux driver仅仅完毕一些简单的数据交互作用,甚至把硬件寄存器空间直接映射到user space.而Android是基于Aparch的license,因此硬件厂商能够仅仅提供二进制代码,所以说Android仅仅是一个开放的平台,并非一个开源的平台. 总

Android C++高级编程

简介 <Android C++高级编程--使用NDK>提供了Java原生接口(JNI)的概述.Bionic API.POSIX 线程和套接字.C++支持.原生图形和声音API以及NEON/SIMD优化.   本文将记录主要知识点. 详解 1.深入了解Android NDK Android NDK不是一个独有的工具:它是一个包含API.交叉编译器.链接程序.调试器.构建工具.文档和实例应用程序的综合工具集.组件如下:ARM.x86和MIPS交叉编译器构建系统JAVA原生接口头文件C库Math库P

两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)

之前在进行cocos2dx开发时,已经详细介绍了如何将win32的c++代码移植到Android平台,当再次回顾时,发现一些基础的东西理解并不是很彻底,今天使用Android NDK提供的一个例子做一个简单的移植.在进行该demo前,请确认你已经配置了Android开发环境和安装了最新的Android NDK. 1.创建Android项目 创建一个Android项目 , 包名是com.example.hellojni,创建一个Activity作为程序进入的Acitivity,命名为HelloJn

Android平台NDK编程

转自:http://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2dx开发时,已经详细介绍了如何将win32的c++代码移植到Android平台,当再次回顾时,发现一些基础的东西理解并不是很彻底,今天使用Android NDK提供的一个例子做一个简单的移植.在进行该demo前,请确认你已经配置了Android开发环境和安装了最新的Android NDK. 1.创建Android项目 创建一个Android项目 ,

Android中多线程编程(四)AsyncTask类的详细解释(附源码)

Android中多线程编程中AsyncTask类的详细解释 1.Android单线程模型 2.耗时操作放在非主线程中执行 Android主线程和子线程之间的通信封装类:AsyncTask类 1.子线程中更新UI 2.封装.简化异步操作. 3.AsyncTask机制:底层是通过线程池来工作的,当一个线程没有执行完毕,后边的线程是无法执行的.必须等前边的线程执行完毕后,后边的线程才能执行. AsyncTask类使用注意事项: 1.在UI线程中创建AsyncTask的实例 2.必须在UI线程中调用As

【翻译】CEDEC2014 CAPCOM 照相机正确的照片真实的制作工作流

这次带来的翻译是Capcom在CEDEC2014上发表的技术美术相关的资料.资料的目的,就是在已经拥有了一套基于物理的渲染引擎的前提下,如何进行图片真实的材料的拍摄并制作为引擎里的材质,以及如何正确的把拍摄的环境,如光照信息,照相机信息等渲染公式项目,从真实拍照环境参数转化为游戏渲染引擎使用的渲染公司的参数的整体工作流程的介绍. Capcom这次介绍的名为[LookDevelopment]的基于正确照相机和图片真实的美术资源制作.使用方法,共有2篇文章,第一篇主要介绍的是[LookDevelop