Table of Contents
فهم الصورة الأساسية
الصورة الأساسية هي إطار تجهيز الصور العالية الأداء لـ(آبل) الذي يوفر مجموعة غنية من المرشّحات المُبنية، وتسويات الألوان، والعمليات المُركبة، ويعزز سرعة (جي بي يو) في تقديم الأداء في الوقت الحقيقي، مما يجعله مثالياً لبناء تطبيقات مُشفرة للصور مُستجيبة على نظام iOS.
دعم الصور الأساسية لأكثر من 200 مرشح، بما في ذلك الآثار غير الواضحة، وتسويات الألوان، وآثار التشويه، ومرشحات الترسب، والآثار الانتقالية، ويقبل كل مرشح بارامترات رئيسية تتحكم في سلوكه، مثل الشدة، أو الإشعاع، أو اللون، ويدعم الإطار أيضاً سلاسل التصفيق معاً، مما يتيح لك إنشاء خطوط تجهيز مركبة للصور، فهم كيفية العمل مع ، [FT:]
وضع بيئة التنمية الخاصة بك
بدء تطوير تطبيق تحرير الصور، بدء بتركيب أحدث نسخة من "إكسيد" من متجر "ماك آبر" وخلق مشروع جديد باختيار نموذج "أي إس بي أي" واختيار "سويفت" كلغة البرمجة واختيار لوحة "ستوري" أو "سويفت" كبنّاء للوصلات البينية حسب ما تفضلتم، وحالما يتم إنشاء مشروعكم، استيراد إطار التصويري في الملفات التي ستقومون فيها بتجهيز الصور:
وقد تحتاج أيضاً إلى استيراد أطر أخرى مثل لمكونات اليورانيوم، للاطلاع على مكتبة الصور، و إذا كنت تخطط لاستخدام تسارع المعدات أو إنشاء مرشحات قائمة على المعادن، وضمان تحديد هدف نشرك إلى iOS 13 أو فيما بعد للاستفادة الكاملة من السمات الحديثة للزراعة الأساسية.
مجموع الأقاليم
إذا كنت تخطط لتوسيع الصورة الأساسية بمرشحات المقاييس أو دمج مكتبات طرف ثالث في وظيفة إضافية، فكر في استخدام مدير التعبئة أو كوبودز سويفت، لكن بالنسبة لمعظم مهام تحرير الصور، فإن مرشحات الصور الأساسية كافية، تُضفي على نفسك مع واجهة Xcode، بما في ذلك سجل الأصول لإدارة موارد الصور وجهاز الوصل بين المستخدمين.
تصميم المستعمل
ومن الأهمية بمكان وجود واجهة مصممة جيدا للمستعملين من أجل تطبيق تحرير الصور، وينبغي أن تكون الوصلة البينية مناسبة ومستجيبة ونظيفة بصرية، وأن تبدأ من وجهة النظر الرئيسية التي تظهر الصورة المختارة، وأن تضع أو تراقب الصورة، وأن تضع مجموعة من الضوابط لاختيار مرشحات، ومعايير التكيف، وأن تؤدي أعمالا مثل الادخار أو التقاسم.
(أ) النظر في استخدام جهاز تسجيل صوتي أو جهاز (سويفتو) للجهاز الآلي لعرض الإبهام المصفوف، ويظهر كل جهاز من هذه الأجهزة عرضاً مسبقاً للصورة التي طبقت عليها التصفية المقابلة، مما يعطي المستعملين إشارة سريعة إلى زر البصر، ويستخدم جهاز تسجيل الصوت أو جهاز التتبع في تعديل البارمترات مثل التقويم أو التفكك أو التحلل.
اعتبارات مباشرة قبل النظر في العروض
ويتطلب تنفيذ استعراض مباشر تحديث الصورة في الوقت الحقيقي مع تعديل المستعمل للمقاييس، واستخدام جهاز للميتال لأفضل أداء، وربط الصورة الملوَّثة في خيط خلفية وتحديث للمستخدمين على السكك الرئيسي، وتجنب الإدلاء بالصورة الأصلية في أثناء التعديلات الحية في كامل الحل، وبدلا من ذلك استخدام نسخة مخفضة العينة للمستخدمين في سلسلة الحلول النهائية.
إضافة اختيار الصور
(ج) السماح للمستعملين باختيار صور من مكتبة صورهم، واستخدام [(FLT:8]] أو الجديد (المقدمة في محطة الفضاء الدولية 14). يتيح تطبيقاً عصرياً ومتعجرفاً يحترم خصوصية المستخدمين ويدعم الاختيار المتعدد.
Using PHPickerViewController:]
وعندما يختار المستخدم صورة، يحمّل بيانات الأصول وينشئ نظاماً للمحاسبة، ويحول هذه الصورة إلى مادة CIImage باستخدام لبدء التجهيز، وللصور التي التقطت مباشرة من الكاميرا، يستخدم .
العمل مع CIImage وخط التصوير المجهز للصور
(أ) التصوير الأولي الأساسي يعمل على أشياء لا يمكن تأديتها في الصور، ويمكن إنشاء مركب من طراز UIImage، أو ملف أورده أو بياناته عن البكسل الخام، أو حتى توليده من الناحية البرنامجية.
- Input:] Create a CIImage from the source image.
- Filter Chain:] Apply one or more CIFilter objects to the CIImage. Each filter modifies the image based on its parameters.
- Context Rendering:] Use a CIContext to render the final output CIImage into a CGImage or a Metal texture.
- Display: ] Convert the CGImage to a UIImage and display it in the UI.
هنا مثال على إنشاء مركب من مركب واحد وعرضه:
بإبقائكِ الـ "كلماج" كـ هدف عمل يمكنكِ أن تُقيّد مرشحات بدون طباعة وسيطة، وتحافظين على الأداء ونوعية الصور
Understanding CIContext
The is the rendering motor for Core Image. It manages GPU or CPU resources and performs the actual pixel processing. Create a CIContext with a Metal tool for equipment acceleration:
إذا كنت تعطي صوراً كثيرة أو تقوم بسلسلة مرشحات معقدة، إعادة استخدام مركز واحد للتصنت المركزي لتجنب إعادة موارد وحدة تحديد المواقع، ويمكن خلق السياق مرة واحدة واستخدامه طوال دورة حياة التطبيق.
تطبيق ملفات الصور الأساسية
ويزود التصوير الأساسي عشرات من مرشحات مصنَّفة في فئات مثل تعديل العقيدات، والسطو، والتخزين، وتركيب، والانتقال، ويُحدَّد كل مرشح باسم خطي مثل أو .
- Create an instance of CIFilter using .]
- (د) وضع صورة المدخلات باستخدام .]
- (ب) وضع بارامترات خاصة بالمرشحين باستخدام المفاتيح المناسبة مثل [(FLT:22]]، ، أو مفاتيح العرف.
- إسترجاع كلميات الناتج من ممتلكات المرشّح
Example: Applying a Vignette Effect]
بعد الحصول على رقم قياسي للناتج، جعله إلى مركز التصوير المركزي باستخدام الرقم القياسي للإحصاء:
المصورون المستخدمون بشكل عام
- CISepiaTone:] Adds a warm sepia tint. Parameter: [0.0 to 1.0).
- CIPhotoEffectNoir:] Converts to a high-contrast black-and-white look.
- CIGaussianBlur:] Applies a gaussian blur. Parameter: ] (pixels).
- CIVignette:] Darkens the edges of the image. Parameters: and ].
- CIColorControls:] Adjusts brightness, contrast, and saturation. Parameters: , , .
- CIExposureAdjust:] Adjusts exposure. Parameter: (exposure value).
- CIHighlightShadowAdjust:] Controls highlights and shadows. Parameters: ], .
لقائمة كاملة من مرشحات متاحة، استشارة وثائق (الصندوق) على موقع (آبل) المطور، التجارب مع مرشحين مختلفين لفهم أثرهم البصري ونطاقات البارامترات.
بناء نظام استعراض الملفات
ولتمكين المستخدمين من التصفية بصريا، ولإنتاج استعراضات للصدمات لكل مرشح، ومسح الصورة الأصلية إلى حجم أصغر (مثل 200 نقطة) وتطبيق التصفية على النسخة المخفضة العينة، وخزن ما ينتج عن ذلك من أشعة فوق البنفسجية في صفيفة، وعرضها في صورة جمع، ويوفر هذا النهج تغذية مرتدة سريعة دون أن يستهلك الذاكرة المفرطة أو القدرة على التجهيز.
عدد المصورين المتعددين
فكثيراً ما يتطلب تحرير الصور في العالم الحقيقي إدخال تعديلات متعددة في التسلسل، يدعم التصوير الأساسي سلاسل التصفيق بإطعام ناتج مرشح واحد كمدخل إلى آخر، لأن (كليماج) غير قابل للتحرك، يمكنك أن تُقيّد مرشحات بدون آثار جانبية.
Example: Sepia Tone followed by a Vignette ]
مطاردة عدد كبير من مرشحات حسب الحاجة، ولكن توخياً للأداء، يضيف كل مرشح النفقات العامة الحاسوبية، خاصة عند استخدام استعراضات في الوقت الحقيقي.
إنشاء خط غير مدمر
ولتطبيق نظام تحرير الصور من الدرجة المهنية، ينفذ خطاً غير هديري للتحرير، ويخزن نظام CIImage الأصلي وقائمة بالمرشحات التطبيقية مع معاييرها، وعندما يعدل المستخدم البارامترات ويعيد بناء سلسلة التصفية من الصورة الأصلية ويطبق جميع المرشّحات حسب الطلب، ويحفظ هذا النهج جودة الصور ويتيح للمستعمل إعادة النظر في أي تعديل سابق.
تعزيز خبرة المستعملين في مجال المراقبة التفاعلية
فالضوابط التفاعلية تجعل عملية التحرير عملية غير ملائمة وممتعة، وتستخدم نظام " أوسلدر " في معايير مستمرة مثل اللامع أو اللامع، وتستخدم " أوسيتر " لتغييرات منفصلة مثل الزيادات في التناوب، وتربط قيمة الشرائح بمساحة التصفية، وتشعل مجرىاً جديداً عند تغير القيمة.
Real-Time Slider Example:]
بالنسبة لطريقة ، جعل سلسلة التصفية إلى كاميرا مقلدة، وتحديث نظام UIImageView على الخيط الرئيسي، واستخدام الخنق أو التفكيك لتجنب الإفراط في القذف عندما يتم نقل المزلاج بسرعة.
إضافة مقارنات
ومن بين نماذج الأشعة فوق البنفسجية المفيدة المقارنة السابقة والبعدية، تنفيذ إشارة إلى السحب والربط التي تعيد مؤقتاً العرض إلى الصورة الأصلية، مما يتيح للمستعمل رؤية تأثير حرائقه، وكبديل لذلك، يمكن للمنزلق المقسم أن يكشف عن نصف الصورة الأصلية ونصف الصورة المحررة.
الأداء على الوجه الأمثل
فالأداء حاسم بالنسبة لتجربة تحرير الصور بطريقة سلسة، فالصور الأساسية هي صورة ملتقطة من GPU، ولكن الاستخدام غير الفعال يمكن أن يؤدي إلى تآكل، لا سيما مع الصور العالية الاستبانة من الأجهزة الحديثة، وتتبع هذه الاستراتيجيات المثلى:
- () استخدام نسخة واحدة من CIContext: ] Creating multiple CIContext instances is expensive. Reuse one context throughout the app.
- Downsample for preview:] During live editing, apply filters to a downsampled version of the image (e.g., 1024px on the longest side).
- Render in background threads:] Core Image operations are thread-safe. Perform rendering on a series background queue and send UI updates to the main queue.
- Usese Metal for rendering:] Create your CIContext with a Metal tool to leverage GPU acceleration: .
- Limit سلاسل مرشحات: ] For real-time previews, keep the filter chain short. If the user applies many filters, consider combining them into a single ] subclass that performs multiple operations in one pass.
- استخدام أداة (إكسكود) لتحديد اختناقات الأداء، يساعد نموذجيّة (كوري) و(جي بي يو) على تصور الأداء.
Memory Management
ويمكن أن تحمل الأجسام المُتفجرة إشارات إلى عوازل كبيرة للصور، إذ أن إطلاق الأجسام التي لم تعد بحاجة إليها من خلال وضعها على العدم، واستخدام مجمعات الإنقاذ الآلي في حلقات ضيقة تجعل استخدام الذاكرة تحت السيطرة، وبالنسبة للصور الكبيرة للغاية، النظر في جعلها مُضللة باستخدام لتجهيز الصورة في البلاط.
الترشيحات المتقدمة
لجعل تطبيقك يبرز، النظر في إضافة ملامح متقدمة خارج المرشّحات الأساسية.
التكتل والتناوب
(د) استخدام لتنفيذ عملية محاصيل، لأغراض التناوب، تطبيق أو استخدام ] لأغراض التناوب البسيطة البالغة 90 درجة، وتوفير أدلة بصرية مثل الإفراط في الشبكة وتراجع المحاصيل القابلة للاسترداد، وتخزين تناقص المحاصيل كقاعدة بيانات أساسية وتطبيقها كخطوة نهائية في سلسلة القوارير.
ممرات ومستويات المبردات
الصور الأساسية توفر و للتدرج المتطور لللون، تقبل هذه المرشحات نقاط التحكم التي تحدد منحنىات الألوان العرفية، وتعطي المستخدمين ذوي الخبرة السيطرة على مدى الصورة الكلي.
كشف الوجهة وتعزيزها
(ج) إدماج لكشف الوجه، ويمكنك، بمجرد اكتشاف الوجوه، تطبيق تعديلات محلية مثل سلاسة الجلد، أو تصحيح العين الحمراء، أو التأجير الآلي، ويوفر المُدير حدوداً لكل وجه، ويمكنك استخدامها لتطبيق الرشّات على مناطق محددة فقط.
الادخار والصادرات
بعد أن يكمل المستخدم التحرير، يحفظ الصورة إلى مكتبة الصور باستخدام . ويتيح خيارات للتصدير بأشكال مختلفة (JPEG, PNG, HEIF) والقرارات. () أو لكتابة بيانات الصور، ولتقاسم واستخدام رسّالة البريد الإلكتروني (UIActivityVie) لتقاسمها مع مستخدمين آخرين.
اختبار تطبيقك
اختبارات على مجموعة متنوعة من أجهزة البرمجيات الموضعية ذات أحجام مختلفة، وأجهزة تجهيز، وقرارات الكاميرا، واستخدام المحفزات للتكرار السريع، ولكن اختبار الأجهزة المادية لقياس الأداء الدقيق، وإيلاء اهتمام خاص لاستخدام الذاكرة ومعدل الإطار أثناء استعراض مباشر، وكتابة اختبارات الوحدة لمنطق سلسلة مرشحيك واختبارات الطلقات للتحقق من أن نواتج التصفية لا تزال متسقة عبر نسخ نظام iOS.
خاتمة
(أ) بناء جهاز تحرير الصور مع التصوير الأساسي هو مشروع مكافئ يجمع بين تجهيز الصور وتصميم الأشعة فوق البنفسجية وتحقيق الاستخدام الأمثل للأداء، وبفهم خط الأنابيب الأساسية، وأجهزة التصفية المصممة، وعمليات السلاسل، والتحسين الأمثل لأداء الوقت الحقيقي، يمكن أن تخلق جهازاً يشعر بالطابع المهني والتجاوب، وتبدأ بالأساسيات المبينة هنا، ثم تُدرج في شكل نماذج أخرى وتُطابق فيها الرؤية.