Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release
, bukan aosp-main
, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Bokeh kamera
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Bokeh kamera adalah efek kedalaman bidang dangkal yang dibuat dengan memburamkan bagian
tampilan sehingga tidak fokus. Pada kamera di perangkat seluler, bokeh
dicapai menggunakan informasi kedalaman yang diperoleh dari stereo vision dari dua
kamera atau dari fotodioda ganda (PD) dari satu kamera.
Mulai dari Android 11, platform Android
mendukung implementasi bokeh dan menyediakan API untuk menyediakan fitur tersebut
ke aplikasi pihak ketiga.
Implementasi
Agar fitur bokeh kamera tersedia di perangkat Anda, lakukan hal berikut:
Beriklan ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
:
Tag ini dalam format array tuple tiga bilangan bulat, dengan setiap tuple
dalam format {mode, maxWidth, maxHeight}
. Selain
{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
, HAL kamera juga harus
mencantumkan satu atau kedua
mode ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
dan
ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
dengan
ukuran streaming maksimum yang sesuai.
Iklankan
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:
Tag ini dalam format array {minZoomRatio, maxZoomRatio}
,
yang berisi semua rentang rasio zoom untuk mode tampilan
yang diperluas yang diaktifkan, dalam urutan yang sama seperti dalam
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
. Rentang zoom
[1.0, 1.0]
berarti zoom tidak didukung.
Isi ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
di
ANDROID_CONTROL_AVAILABLE_MODES
.
Agar aplikasi dapat memicu fitur bokeh, aplikasi harus menetapkan ANDROID_CONTROL_MODE
ke ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
dan
ANDROID_CONTROL_EXTENDED_SCENE_MODE
ke salah satu mode scene yang diperluas yang didukung.
Perhatikan bahwa menerapkan bokeh dapat menyebabkan konsumsi memori tambahan karena
komputasi stereo.
Jika mode scene yang diperluas yang didukung tidak dapat diterapkan per frame dan menyebabkan
keterlambatan yang tidak terduga saat diaktifkan/dinonaktifkan, sertakan
ANDROID_CONTROL_EXTENDED_SCENE_MODE
dalam
ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
. Pada saat yang sama, terapkan
metode ICameraDeviceSession::isReconfigurationRequired()
untuk menghindari
konfigurasi ulang untuk mode scene yang diperluas yang tidak memerlukan konfigurasi ulang.
Validasi
Untuk memvalidasi fitur bokeh di perangkat Anda, jalankan pengujian CTS, VTS, dan
CTS Verifier berikut:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
di CTS Verifier
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-26 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-26 UTC."],[],[],null,["# Camera bokeh is a shallow depth-of-field effect created by blurring out parts of\na scene so that they're not in focus. On cameras on mobile devices, bokeh is\nachieved using depth information acquired from the stereo vision from two\ncameras or from dual photodiodes (PDs) of a single camera.\n\nStarting from Android 11, the Android platform\nsupports bokeh implementations and provides APIs to make the feature available\nto third-party apps.\n\nImplementation\n--------------\n\nTo make the camera bokeh feature available on your device, do the following:\n\n- Advertise `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES`:\n\n This tag is in the format of a three-integer tuple array, with each tuple\n in the format of `{mode, maxWidth, maxHeight}`. In addition to\n `{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}`, the camera HAL must\n also list one or both of the\n `ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE` and\n `ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS` modes with their\n corresponding maximum streaming sizes.\n- Advertise\n `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES`:\n\n This tag is in the format of a `{minZoomRatio, maxZoomRatio}` array,\n which contains all the zoom ratio ranges for an enabled extended scene\n mode, in the same order as in\n `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES`. A zoom range of\n `[1.0, 1.0]` means that zoom isn't supported.\n- Populate `ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE` in\n `ANDROID_CONTROL_AVAILABLE_MODES`.\n\nFor an app to trigger the bokeh feature, the app must set `ANDROID_CONTROL_MODE`\nto `ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE` and\n`ANDROID_CONTROL_EXTENDED_SCENE_MODE` to one of supported extended scene modes.\nNote that implementing bokeh might lead to extra memory consumption because of\nstereo computation.\n\nIf a supported extended scene mode can't be applied per frame and results in\nunexpected delays when enabled/disabled, include\n`ANDROID_CONTROL_EXTENDED_SCENE_MODE` in\n`ANDROID_REQUEST_AVAILABLE_SESSION_KEYS`. At the same time, implement the\n`ICameraDeviceSession::isReconfigurationRequired()` method to avoid\nreconfiguration for extended scene modes that don't require reconfiguration.\n\nValidation\n----------\n\nTo validate the bokeh feature on your device, run the following CTS, VTS, and\nCTS Verifier tests:\n\n- `CtsCameraTestCases`\n- `VtsHalCameraProviderV2_4TargetTest`\n- `CameraBokehTest` in CTS Verifier"]]