Android照相機模組編程 照片顛倒問題及查詢網路攝影機參數問題的解決

來源:互聯網
上載者:User

 這兩天編程弄Android照相機模組,設定好各種參數後,發現預覽的時候,照片是顛倒了,不是上下顛倒而是顛倒90°。 My Phone是華為U9200,用的Android4.0.3,增加代碼: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<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);   www.2cto.com
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。 如果您想得到原始大小,就把紅色去掉,把最後一句加上來就可以了。
作者:yanzi1225627

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.