1. 程式人生 > >android開發自定義相機映象問題

android開發自定義相機映象問題

第一次寫部落格,之前一直是沒有寫部落格的習慣。希望多多支援。

言歸正傳。

最近在做一個專案,需要自定義一個拍照功能。做完後發現,使用前置攝像頭拍照,儲存到本地以後,去相簿檢視發現儲存的是原圖。效果:拍的IX儲存後是XI.

按道理來說這樣是沒有問題的,拍的什麼儲存的就是什麼。這樣是沒問題的。但是總覺得很是彆扭。

於是找了很多有關拍照儲存圖片的文章。也麼有找到自己想要的。

最後在一篇部落格中看到這樣一個效果(實現映象效果)的文章:http://blog.csdn.net/lovoo/article/details/51429563

靈機一動,將拍照後的圖片轉成映象儲存,結果就真的實現了,問題也就解決了。

最後就加了兩行程式碼問題就解決了。記錄下希望幫助更多人。有什麼好的方式也希望多多指點。

//鏡子效果
matrix.setScale(-1, 1);
matrix.postTranslate(bitmap.getWidth(), 0);

下面是我專案裡面的主要程式碼:

try {
    if (cameraPosition == 0) {
        Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
Matrix matrix = new Matrix();
//鏡子效果
matrix.setScale(-1, 1);
matrix.postTranslate(bitmap.getWidth(), 
0); bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth() , bitmap.getHeight(), matrix, true); saveImageToGallery(getBaseContext(), bitmap); } else { // 獲取Jpeg圖片,並儲存在sd卡上 String fileName = System.currentTimeMillis() + ".jpg"; File file = new File(Environment.getExternalStorageDirectory
(), fileName); FileOutputStream fos = new FileOutputStream(file); fos.write(data); fos.close(); // 其次把檔案插入到系統圖庫 MediaStore.Images.Media.insertImage(CameraActivity.this.getContentResolver() , file.getAbsolutePath(), fileName, null); // 最後通知相簿更新 CameraActivity.this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE , Uri.parse("file://" + file))); } mCamera.stopPreview(); mCamera.startPreview(); } catch (Exception e) { Log.d(TAG, "儲存圖片失敗:::" + e.getLocalizedMessage()); }