اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تأثير بوكيه في الكاميرا
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تأثير "مؤثر بوكيه" في الكاميرا هو تأثير ضحل لعمق المجال يتم إنشاؤه من خلال تمويه أجزاء من
المشهد كي لا تكون في بؤرة الصورة. في الكاميرات المضمّنة في الأجهزة الجوّالة، يتم تطبيق تأثير "مؤثر بوكيه" باستخدام معلومات العمق التي يتم الحصول عليها من الرؤية المجسمة من كاميرتَين أو من ثنائي ثنائي الصمامات الضوئية (PD) في كاميرا واحدة.
بدءًا من الإصدار 11 من Android، يتيح نظام Android الأساسي استخدام تأثير "مؤثرات بوكيه" ويوفّر واجهات برمجة تطبيقات لإتاحة هذه الميزة للتطبيقات التابعة لجهات خارجية.
التنفيذ
لتفعيل ميزة "تأثير التمويه" في الكاميرا على جهازك، اتّبِع الخطوات التالية:
الإعلان ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
:
تكون هذه العلامة بتنسيق صفيف ثلاثي الأعداد الصحيحة، مع كل مجموعة
بتنسيق {mode, maxWidth, maxHeight}
. بالإضافة إلى
{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
، يجب أن يُدرج HAL للكاميرا
أيضًا أحد وضعَي
ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
و
ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
أو كليهما مع
الحد الأقصى لحجمَي البث المتوافقَين.
الإعلان
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:
تكون هذه العلامة بتنسيق مصفوفة {minZoomRatio, maxZoomRatio}
،
التي تحتوي على جميع نطاقات نسبة التكبير لوضع المشهد الموسّع فعالًا، بالترتيب نفسه كما هو موضّح في
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
. إذا كان نطاق التكبير/التصغير هو
[1.0, 1.0]
، يعني ذلك أنّ ميزة التكبير/التصغير غير متاحة.
املأ الحقل ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
في
ANDROID_CONTROL_AVAILABLE_MODES
.
لكي يشغِّل التطبيق ميزة "مؤثر بوكيه"، يجب ضبط ANDROID_CONTROL_MODE
على ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
و
ANDROID_CONTROL_EXTENDED_SCENE_MODE
على أحد أوضاع المشهد الموسّعة المتوافقة.
يُرجى العِلم أنّ تطبيق تأثير "مؤثر بوكيه" قد يؤدي إلى استهلاك ذاكرة إضافية بسبب
عمليات الحساب المجسم.
إذا تعذّر تطبيق وضع متوافق للصور الممتدة لكل لقطة وتسبّب في
تأخيرات غير متوقّعة عند تفعيله أو إيقافه، أدرِج
ANDROID_CONTROL_EXTENDED_SCENE_MODE
في
ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
. في الوقت نفسه، نفِّذ أسلوب
ICameraDeviceSession::isReconfigurationRequired()
لتجنُّب
إعادة الضبط لإعدادات أوضاع المشهد الموسّعة التي لا تتطلّب إعادة الضبط.
التحقُّق
للتحقّق من صحة ميزة "مؤثرات التمويه" على جهازك، عليك إجراء اختبارات CTS وVTS و
CTS Verifier التالية:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
في أداة التحقّق من مجموعة أدوات اختبار التوافق (CTS)
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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"]]