Android Camera開發解析度 清晰度 影象變形
但是通過打Log看出當時設定的時候解析度是改變了的,然而正是拍照的時候解析度又變回系統預設的了,在不同的機子上預設的解析度不同。setParameters failed 問題我的華為的預設的previewSize是最高的,然而pictureSize又是最低的:
導致預覽的圖片十分清晰,而拍出的照片十分小且模糊。同樣使用預設解析度,在一些機子上會出現預覽變形的情況。
1.設定預覽分辨路和圖片解析度:
Camera.Parameters param = camera.getParameters();
param.setPreviewSize(width, height); //width一般大於height
param.setPictureSize(width, height);//width一般大於height setParameters failed問題解決:
camera.setPerviewSize(screenWidth,screenHeight);// 不要這樣設定,不然不會設定成功的;
camera.setPerviewSize(screenHeight , screenWidth );//應該這樣設定,第一個引數大於後面那個引數
params.set("orientation", "landscape");//這樣設定也可以
camera.setDisplayOrientation(90);//相機旋轉90度,便成豎屏
camera.setParameters(param);//這句話不要忘記
2. setParameters failed問題解決:
Java.lang.RuntimeException: setParameters failed
at Android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:1834)
3.width一般大於height,因為預設的攝像頭是橫向的
camera.setDisplayOrientation(90);
4.預覽變形解決:
一般手機螢幕解析度為16:9,而可能預設的預覽解析度是4:3的,
然而我們在設定佈局檔案的時候設定的預覽介面SurfaceView寬高均為match_parent,讓預覽介面充滿螢幕,
所以自然就會出現預覽變形的情況。
- <SurfaceView
- android:id="@+id/surface_2"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"/>
通過Context進行:
- WindowManager windowManager = mcontext.getWindowManager();
- Display display = windowManager.getDefaultDisplay();
- DisplayMetrics metrics = new DisplayMetrics();
- //獲取螢幕的寬和高
- display.getMetrics(metrics);
- screenWidth = metrics.widthPixels;
- screenHeight = metrics.heightPixels;
- 計算預覽解析度的寬高比:
- public String getSurfaceViewSize(int width, int height) {
- if (equalRate(width, height, 1.33f)) {
- return"4:3";
- } else {
- return"16:9";
- }
- }
- publicboolean equalRate(int width, int height, float rate) {
- float r = (float)width /(float) height;
- if (Math.abs(r - rate) <= 0.2) {
- returntrue;
- } else {
- returnfalse;
- }
- }
- 根據解析度設定SurfaceView的大小:
- /**
- * 根據解析度設定預覽SurfaceView的大小以防止變形
- *
- * @param surfaceSize
- */
- privatevoid setSurfaceViewSize(String surfaceSize) {
- ViewGroup.LayoutParams params = surfaceView.getLayoutParams();
- if (surfaceSize.equals("16:9")) {
- params.height = ViewGroup.LayoutParams.MATCH_PARENT;
- } elseif (surfaceSize.equals("4:3")) {
- params.height = 4 * screenWidth / 3;
- }
- surfaceView.setLayoutParams(params);
- 這樣基本就不會變形了,還有些手機可能既不是16:9也不是4:3 的螢幕解析度,都可以通過計算比例適當縮放使其不變形。
設定了previewSize和pictureSize,但是通過打Log看出當時設定的時候解析度是改變了的,然而正是拍照的時候解析度又變回系統預設的了,在不同的機子上預設的解析度不同。setParameters failed 問題我的華為的預設的previewSize是最高的,然而pictureSize又是最低的,導致預覽的圖片十分清晰,而拍出的照片十分小且模糊。同樣使用預設解析度,在一些機子上會出現預覽變形的情況。
相關推薦
Android Camera開發解析度 清晰度 影象變形
設定了previewSize和pictureSize:但是通過打Log看出當時設定的時候解析度是改變了的,然而正是拍照的時候解析度又變回系統預設的了,在不同的機子上預設的解析度不同。setParameters failed 問題我的華為的預設的previewSize是最高
Android Camera開發解析度 清晰度 影象變形
設定了previewSize和pictureSize:但是通過打Log看出當時設定的時候解析度是改變了的,然而正是拍照的時候解析度又變回系統預設的了,在不同的機子上預設的解析度不同。setParameters failed 問題我的華為的預設的previewSize是最高的,然而pictureSize又是最
淺析Android Camera開發中的三個尺寸和三種變形 貢獻一個自適配Picturesize和Previewsiz
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
玩轉Android Camera開發(二):使用TextureView和SurfaceTexture預覽Camera 基礎拍照demo
處理 pict all sans 格式 facet ace ets nth Google自Android4.0出了TextureView。為什麽推出呢?就是為了彌補Surfaceview的不足。另外一方面也是為了平衡GlSurfaceView。當然這是本人揣度的。關於Te
玩轉Android Camera開發 四 預覽介面四周暗中間亮,只拍攝矩形區域圖片 附完整原始碼
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
玩轉Android Camera開發 五 基於Google自帶演算法實時檢測人臉並繪製人臉框 網路首發 附完整demo
本文主要介紹使用Google自帶的FaceDetectionListener進行人臉檢測,並將檢測到的人臉用矩形框繪製出來。本文程式碼基於PlayCameraV1.0.0,在Camera的open和preview流程上進行了改動。原先是放在單獨執行緒裡,這次我又把它放到
Android Camera開發 給攝像頭預覽介面加個ZoomBar(附完整程式碼下載)
廢話不說了,就是加個seekbar,拖動的話能夠調節焦距,讓畫面變大或縮小。下面是核心程式:一,camera的佈局檔案<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" x
玩轉Android Camera開發(一):Surfaceview預覽Camera,基礎拍照功能完整demo
雜家前文是在2012年的除夕之夜倉促完成,後來很多人指出了一些問題,瑣事纏身一直沒有進行升級。後來隨著我自己的使用,越來越發現不出個升級版的demo是不行了。有時候就連我自己用這個demo測一些效能、功能點,用著都不順手。當初程式碼是在linux下寫的,弄到windows裡下
Android Camera增加自定義影象處理並錄製MP4
在我的一篇部落格Android Camera API/Camera2 API 相機預覽及濾鏡、貼紙等處理中,介紹瞭如何給相機增加濾鏡貼紙的方法,也就是自定義影象處理。而另外一篇部落格Android硬編碼——音訊編碼、視訊編碼及音視訊混合介紹了一種編碼錄製MP4的
【轉】Android Camera 相機開發詳解
exc troy start 當前 container rac google getconf 對比度 在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera接口。Camera2在接口和架構上做了巨大的變動, 但是基於眾所周知的原因
開發Android Camera—使用Kotlin語言,完成第一個自定義相機
對於首次使用Kotlin語言開發,在網上苦於尋找不到Kotlin語言編寫的相機程式碼,故寫下這篇部落格。 好了,咱們進入主題 在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera介面。Camera2在介面和架構上做了巨大的變動,但是基於眾所周知的原
android native開發-native實現對camera的操作
通過native實現camera的操作 原始碼路徑:frameworks/av/camera/ndk/ 參考的test原始碼路徑:cts/tests/tests/graphics/jni/CameraTestHelpers.cpp 1/* 2 * Copyrig
Android Camera拍照後擷取指定大小區域的影象
最近公司需要實現拍照時需要實現自定義相機,佈局中給定輔助拍照區域圖。拍照後只保留拍照部分的圖,現對實現過程做一下記錄便於以後修改。 思考:相機拍照後的bitmap是一個完整的bitmap,如何定位自己想要儲存的影象的的位置是關鍵。例如我的需求是儲存的地方是
Android實戰開發:獲得螢幕物理尺寸、密度及解析度
通過程式去了解硬體情況是一件十分有意思的事情。很早我就研究在WM6.5上獲得螢幕物理尺寸,但一直沒有成功。後來又想要在Android上有所突破,不過在今天之前得到的尺寸都不準確。雖然很多人認為沒必要這麼較真,因為貌似很多情況下用不到。不過我就當這是一件很有挑戰性的事,一定要做
Android 相機開發 Camera-附帶掃碼遮罩介面實現原理(自動聚焦)
相機遮罩實現原理,FrameLayout中如果控制元件一樣大,同一時間只能見到最上面的。 1.自定義ViewFindView,相機遮罩介面 public class ViewFinderView extends View { //相機遮罩框外面的線,陰影區域,滾
Android camera預覽引數以及實際影象大小設定
參考一下兩篇博文: ###########################################################333 PreviewSize是預覽的大小,也就是拍照前看到的圖片大小 PictureSize是指最終拍攝到的圖片的大小,也就
Android NDK開發 native層獲取Surface並顯示影象 思路過程
import java.io.File;import java.io.FileInputStream;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Canvas;import android
android攝像頭開發,將Camera.onPreviewFrame裡面的data轉換成bitmap
最近在做的幾個專案都和攝像頭有關,其中不乏影象識別的,但是拍照識別有時候感覺還是有些low,直接把畫面一對準自己就識別了多好,就像zxing掃描二維碼一樣,於是上網查了很多資料,找到了需要給camera物件設定一個 Camera.PreviewCallback,在這個回撥中實
Android Camera 相機開發詳解
在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera介面。Camera2在介面和架構上做了巨大的變動, 但是基於眾所周知的原因,我們還必須基於 Android 4.+ 系統進行開發。本文介紹的是Camera介面開發及其使
【Android開發】圖形影象處理技術-實現Android動畫的兩種方式
在應用Android進行專案開發時,特別是在進行遊戲開發時,經常需要涉及動畫。Android中的動畫通常可以分為逐幀動畫(Frame Animation)和補間動畫(Tween Animation)兩種。下面將分別介紹這兩種動畫。 一.實現逐幀動畫(Frame Animat