عن المشروع

# react-native-image-crop-picker وحدة React Native لاختيار الصور ومقاطع الفيديو من معرض الجهاز أو الكاميرا، مع دعم القص والضغط والاختيار المتعدد وخيارات تخصيص متنوعة. تعمل على كل من iOS وAndroid. ## الميزات - **المعرض والكاميرا**: فتح منتقي النظام أو الكاميرا مباشرة. - **القص**: تمكين القص بأبعاد قابلة للتخصيص، وتراكب دائري، وقص حر، وإيماءات تدوير (Android). - **الاختيار المتعدد**: اختيار صور أو مقاطع فيديو متعددة في وقت واحد. - **الضغط**: ضغط الصور حسب أقصى عرض/ارتفاع/جودة، ومقاطع الفيديو حسب الإعداد المسبق (iOS). - **نوع الوسائط**: تصفية حسب الصورة أو الفيديو أو أيًا كان. - **Base64 وEXIF**: تضمين بيانات base64 وبيانات EXIF الوصفية في الاستجابة اختياريًا. - **التنظيف**: إزالة الملفات المؤقتة التي تم إنشاؤها أثناء الاختيار. - **التخصيص**: خيارات واسعة لألوان الواجهة والنصوص والسلوك (مثل إطار القص والأدلة وشريط الأدوات). ## التثبيت ```bash npm i react-native-image-crop-picker --save ``` لنظام iOS، قم بتشغيل `cd ios && pod install`. أضف أوصاف الاستخدام إلى `Info.plist` (مثل `NSPhotoLibraryUsageDescription` للوصول إلى مكتبة الصور). لنظام Android، أضف الأذونات اللازمة إلى `AndroidManifest.xml` (مثل الكاميرا والتخزين). ## الاستخدام ```javascript import ImagePicker from 'react-native-image-crop-picker'; // صورة واحدة مع القص ImagePicker.openPicker({ width: 300, height: 400, cropping: true }) .then(image => console.log(image)) .catch(error => console.log(error)); // صور متعددة ImagePicker.openPicker({ multiple: true }) .then(images => console.log(images)); // فيديو فقط ImagePicker.openPicker({ mediaType: 'video' }) .then(video => console.log(video)); // الكاميرا ImagePicker.openCamera({ width: 300, height: 400, cropping: true }) .then(image => console.log(image)); // قص ملف موجود ImagePicker.openCropper({ path: 'file-path.jpg', width: 300, height: 400 }) .then(image => console.log(image)); ``` ## الخيارات تشمل الخيارات الرئيسية `cropping` و`width` و`height` و`multiple` و`mediaType` و`includeBase64` و`includeExif` و`compressImageMaxWidth` و`compressImageMaxHeight` و`compressImageQuality` و`freeStyleCropEnabled` و`cropperCircleOverlay` وغيرها الكثير. راجع ملف README للحصول على القائمة الكاملة. ## الاستجابة يتضمن كل أصل محدد خصائص مثل `path` و`width` و`height` و`mime` و`size` و`duration` (لمقاطع الفيديو) و`data` (إذا كان base64) و`exif` و`cropRect`. يوفر iOS أيضًا `localIdentifier` و`sourceURL` و`creationDate` و`modificationDate`. ## ملاحظات - للهندسة المعمارية الجديدة لـ React Native، استخدم الإصدار >= 0.50.0. - على Android، تجنب تعيين `cropping` إلى `true` عند اختيار مقاطع الفيديو، حيث قد يخفي مقاطع الفيديو في المعرض. - تنشئ الوحدة ملفات مؤقتة؛ استخدم `clean()` أو `cleanSingle(path)` لإزالتها. ## الترخيص MIT (مضمن ضمنيًا بواسطة المستودع، ولكن غير مذكور صراحةً في ملف README المقدم).