البرمجة

استخدام AVCapturePhotoOutput

في iOS 10.0 وما بعدها، تم تعديل طريقة الحصول على الصور من الكاميرا باستخدام AVCapturePhotoOutput بدلاً من AVCaptureStillImageOutput الذي تم إهماله. لاحظ أن هذا التغيير يعني أن الكثير من الأكواد التي كتبتها ستحتاج إلى تعديل لتتوافق مع الطريقة الجديدة للحصول على الصور.

للاستفادة من AVCapturePhotoOutput، يجب أولاً تحديث الشيفرة لتعيينه كإخراج لجلسة التقاط الفيديو (AVCaptureSession) بدلاً من AVCaptureStillImageOutput. يمكنك القيام بذلك على النحو التالي:

swift
var photoOutput: AVCapturePhotoOutput? // إنشاء وتهيئة AVCapturePhotoOutput photoOutput = AVCapturePhotoOutput() // إضافة AVCapturePhotoOutput إلى جلسة التقاط الفيديو if let session = captureSession { if session.canAddOutput(photoOutput) { session.addOutput(photoOutput!) } } // تحديث دالة التقاط الصورة func clickPicture() { let settings = AVCapturePhotoSettings() photoOutput?.capturePhoto(with: settings, delegate: self) }

في هذا المثال، يتم إنشاء كائن AVCapturePhotoOutput وإضافته إلى جلسة التقاط الفيديو captureSession. ثم، يتم استخدام دالة capturePhoto لالتقاط الصورة باستخدام الإعدادات الافتراضية وتوجيه المعالجة إلى self، مما يعني أن الفئة الحالية يجب أن تتبع AVCapturePhotoCaptureDelegate لمعالجة الصورة الملتقطة.

تحتاج أيضًا إلى تحديث دالة المعالجة لتتفق مع AVCapturePhotoCaptureDelegate. يمكنك فعل ذلك على النحو التالي:

swift
extension YourViewController: AVCapturePhotoCaptureDelegate { func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) { if let imageData = photo.fileDataRepresentation() { let image = UIImage(data: imageData) // استخدم الصورة هنا } } }

تأكد من استبدال YourViewController باسم الفئة الخاصة بك التي تستخدم فيها هذا الكود.

المزيد من المعلومات

بالطبع! AVCapturePhotoOutput توفر واجهة أكثر قوة ومرونة لالتقاط الصور مقارنةً بـ AVCaptureStillImageOutput. تسمح لك AVCapturePhotoOutput بتخصيص إعدادات الكاميرا مثل التعرض والفلاش والتأثيرات البصرية، وتتيح لك الحصول على صور بتنسيقات متعددة مثل HEIF وJPEG.

إلى جانب ذلك، توفر AVCapturePhotoOutput طرقًا لمعالجة الصور بعد التقاطها، مما يتيح لك إضافة مؤثرات وتحسينات إلى الصور قبل حفظها أو مشاركتها. يمكنك أيضًا التحكم في عمليات الالتقاط المتقدمة مثل الالتقاط المتعدد (التقاط أكثر من صورة في وقت واحد) والالتقاط المتتابع (التقاط سلسلة من الصور بسرعة عالية).

باستخدام AVCapturePhotoOutput، يمكنك أيضًا الوصول إلى ميزات متقدمة مثل تقديم المعاينة الحية لما يتم التقاطه والتحكم في إعدادات الكاميرا الديناميكية أثناء التقاط الصور.

باختصار، AVCapturePhotoOutput هو الطريقة المستقبلية لالتقاط الصور في تطبيقات iOS، ويوفر مزايا كبيرة مقارنة بالطرق القديمة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر