这两天编程弄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。 如果您想得到原始大小,就把红色去掉,把最后一句加上来就可以了。

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

  1. Android中JNI编程的那些事儿(1)

    转:Android中JNI编程的那些事儿(1)http://mobile.51cto.com/android-267538.htm Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须 ...

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

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...

  3. Android 框架式编程 —— 起篇

    一般的,在开发的时候,写过的代码在需求变更后,发现需要改动非常多的地方,那么说明之前的代码的架构肯定是存在问题的. 下面我们结合面向对象的六大基本原则谈Android 框架式编程.首先先介绍一下面向对 ...

  4. Android HAL模块实现

    1. HAL介绍 Android的HAL(Hardware Abstract Layer硬件抽象层)是为了保护一些硬件提供商的知识产权而提出的.是为了避开linux的GPL束缚. 思路是把控制硬件的动 ...

  5. Linux模块编程框架

    Linux是单内核系统,可通用计算平台的外围设备是频繁变化的,不可能将所有的(包括将来即将出现的)设备的驱动程序都一次性编译进内核,为了解决这个问题,Linux提出了可加载内核模块(Loadable ...

  6. 部分Android手机拍照后照片被旋转的解决方案

      在部分Android手机(如MT788.Note2)上,使用Camera拍照以后,得到的照片会被自动旋转(90°.180°.270°),这个情况很不符合预期.仔细分析了一下,因为照片属性中是存储了 ...

  7. IOS照片颠倒分析及移动/页面端的处理策略和思路

    前言: 前几天, 写了一篇关于IOS手机上传照片颠倒的技术分析文章: IOS照片颠倒分析及PHP服务端的处理. 不过其思路是从服务器来进行处理的, 这种做法相当普遍. 今天来讲述下, 如何从移动端/页 ...

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

     这次带来的翻译是Capcom在CEDEC2014上发表的技术美术相关的资料.资料的目的,就是在已经拥有了一套基于物理的渲染引擎的前提下,如何进行图片真实的材料的拍摄并制作为引擎里的材质,以及如何正确 ...

  9. Stm32外围模块编程初始化步骤

    Stm32外围模块编程初始化步骤: 一.外部中断 1)初始化 IO 口为输入. 这一步设置你要作为外部中断输入的 IO 口的状态,可以设置为上拉/下拉输入,也可以设置为浮空输入,但浮空的时候外部一定要 ...

随机推荐

  1. ACM题目————Aggressive cows

    Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stal ...

  2. Android之Handler用法总结(1)

    方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread ...

  3. js中的各种获取日期

    JS中获取当前时间点前一天时间 var date=new Date(); var dat_year=date.getYear(); var dat_month=date.getMonth(); var ...

  4. andriod 新建Activity_ Form

    在一个Android工程,如何新建一个Activity? 一:新建一个类(*.class),继承自android.app.Activity类. 二:在res/layout目录下新建一个布局xml文件, ...

  5. Can't create handler inside thread that has not called Looper.prepare()

    参考文章:http://stackoverflow.com/questions/7185942/error-while-dispaying-an-toast-message-cant-create-h ...

  6. MySQL 数据库发展历程及缺点

    传统关系数据库的瓶颈 传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例.在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL ...

  7. hdu 4961 Boring Sum

    Boring Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tota ...

  8. reactjs入门到实战(七)---- React的组件的生命周期

    React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他     getInitia ...

  9. 简单的ajax封装

    // ajax发送post请求返回 json 数据function requestJSON(params) {    params.dataType = 'json';    sendPost(par ...

  10. IIC,RS485,RS232各种协议手册更新中

     RS485使用手册与指南.pdf  RS232协议标准详解.pdf IIC通信协议.pdf 链接:http://pan.baidu.com/s/1ccBtmA 密码:mwj6 IIC,RS485,R ...