6

Tôi đang tạo một ứng dụng Android giống như ứng dụng dừng chuyển động nhằm mục đích chụp ảnh hiệu quả ngay cả trong khi di chuyển. Tôi muốn thiết lập tốc độ màn trập rất thấp và khẩu độ cao để có được hình ảnh tốt hơn, đặc biệt khi camera đang chuyển động, nhưng một số câu trả lời trên ngăn xếp tràn ngập cho tôi biết rằng không thể đặt tốc độ cửa trập và khẩu độ (Vui lòng sửa tôi nếu tôi sai ở đây) . Tôi không sử dụng ý định máy ảnh, nhưng tạo đối tượng máy ảnh với startPreview theo sau là setCameraParams và sau đó takePicture.Một số thông số tối ưu hóa máy ảnh android api để chụp ảnh hiệu quả khi máy ảnh được người dùng di chuyển là gì?

Các thông số máy ảnh khác trong api android mà tôi có thể đặt để làm cho nó hiệu quả chính xác cho máy ảnh khi di chuyển là gì? Tôi đang thiết lập SCENE_MODE_SPORTS và cũng cố gắng thiết lập FOCUS_MODE_CONTINUOUS_PICTURE (không được hỗ trợ trong máy ảnh của tôi mặc dù để kiểm tra).

+0

Câu hỏi hay - Tôi tự hỏi nếu điều này có thể với chất lượng hợp lý, đặc biệt là xem xét biến dạng khi máy ảnh của Android được di chuyển. Theo một bình luận ở đây, sự biến dạng gây ra bởi một số loại hiệu chỉnh góc rộng: http://android.stackexchange.com/questions/44062/video-recording-distorts-vertical-lines – NoBugs

Trả lời

5

Dưới đây là một liên kết đến một phần của Camera API Android mà bạn cần: http://developer.android.com/reference/android/hardware/Camera.Parameters.html

Đó là trong thông số máy ảnh mà bạn gọi như:

mCamera = camera; 
    Camera.Parameters params = mCamera.getParameters(); 
    params.setRotation(getCameraOrientation()); 
    params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 
    params.setFlashMode(Camera.Parameters.FLASH_MODE_ON); 
    mCamera.setParameters(params); 

Những điều mà bạn thực sự dường như là quan tâm là:

setExposureCompensation(int value) 
setColorEffect(String value) 
setAutoExposureLock(boolean toggle) 
getExposureCompensation() 

Đừng quên để mở khóa autoexposure khi bạn muốn sử dụng nó :)

Bạn cũng nên đặt chế độ tự động lấy nét để chụp những bức ảnh như tôi đã làm trong ví dụ của mình và đèn flash cũng sẽ trợ giúp, mặc dù điều đó sẽ khiến cho ảnh mất nhiều thời gian hơn.

1

Xin lỗi đó là muộn nhưng có thể hữu ích cho những người khác

Để thiết lập khẩu độ/tốc độ màn trập/iso:

Camera.Parameters params = camera.getParameters();

params.set ("chế độ", "m");

params.set ("khẩu độ", "28"); // có thể là 28 32 35 40 45 50 56 63 71 80 khi thu phóng mặc định

params.set ("tốc độ cửa trập", 9); // phụ thuộc vào máy ảnh, ví dụ: 1 có nghĩa là dài nhất

params.set ("iso", 200);

Các vấn đề liên quan