這兩天編程弄Android照相機(jī)模塊,設(shè)置好各種參數(shù)后,發(fā)現(xiàn)預(yù)覽的時(shí)候,照片是顛倒了,不是上下顛倒而是顛倒90°。 我的手機(jī)是華為U9200,用的Android4.0.3,后來(lái)看到http://www.cnblogs.com/skyseraph/archive/2012/03/26/2418665.html這篇文章,增加代碼:myCamera.setDisplayOrientation(90); 然后預(yù)覽就正常了。但是拍攝的照片在電腦上打開(kāi)一看,仍然是傾斜的。傾斜了90°,后來(lái)加上這句:myParameters.set("rotation", 90); 這個(gè)是讓照片旋轉(zhuǎn)90°一切正常了! 之前設(shè)了很多//myParameters.set("orientation", "portrait");或//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);發(fā)現(xiàn)都沒(méi)有作用。就差上面那兩句話!
如何查看自己的攝像頭支持的PreviewSize和 PictureSize呢?這里簡(jiǎn)單說(shuō)下,PreviewSize是預(yù)覽的大小,也就是拍照前看到的圖片大小,你可以試一下,這個(gè)參數(shù)設(shè)置不同,在同樣焦距下,你拍攝桌子上一個(gè)固定距離的一個(gè)東西,看到的視野會(huì)不同。PictureSize是指最終拍攝到的圖片的大小,也就是圖片的質(zhì)量。怎么查看呢?
首先在主程序的開(kāi)始private static final String TAG = "MyAndroid";
然后:
List<Size> pictureSizes ;
List<Size> 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的參數(shù)分別是:
預(yù)覽的參數(shù)是:
但我想得到最終是寬度為600,高度為800的圖片。怎么半呢? 這里要說(shuō)明下,由于前面的 myParameters.set("rotation", 90); 你如果設(shè)置照相機(jī)PictureSize的參數(shù)是M*N,得到的圖片大小是N*M,因?yàn)槟阈D(zhuǎn)了。怎么才能得到我想要的指定大小的圖片呢,
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是最初的照片數(shù)據(jù),是個(gè)Bitmap。 如果您想得到原始大小,就把紅色去掉,把最后一句加上來(lái)就可以了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
