প্রকল্প সম্পর্কে

# react-native-image-crop-picker একটি React Native মডিউল যা ডিভাইস গ্যালারি বা ক্যামেরা থেকে ছবি এবং ভিডিও নির্বাচন করার জন্য, সাথে ক্রপিং, কম্প্রেশন, একাধিক নির্বাচন এবং বিভিন্ন কাস্টমাইজেশন অপশন সমর্থন করে। এটি iOS এবং Android উভয়েই কাজ করে। ## বৈশিষ্ট্য - **গ্যালারি এবং ক্যামেরা**: সিস্টেম পিকার বা ক্যামেরা সরাসরি খুলুন। - **ক্রপিং**: কাস্টমাইজযোগ্য মাত্রা, বৃত্তাকার ওভারলে, ফ্রি-স্টাইল ক্রপ এবং ঘূর্ণন অঙ্গভঙ্গি (Android) সহ ক্রপিং সক্ষম করুন। - **একাধিক নির্বাচন**: একসাথে একাধিক ছবি বা ভিডিও নির্বাচন করুন। - **কম্প্রেশন**: সর্বোচ্চ প্রস্থ/উচ্চতা/গুণমান দ্বারা ছবি এবং প্রিসেট দ্বারা ভিডিও কম্প্রেস করুন (iOS)। - **মিডিয়া টাইপ**: ছবি, ভিডিও বা যেকোনো দ্বারা ফিল্টার করুন। - **Base64 এবং EXIF**: ঐচ্ছিকভাবে প্রতিক্রিয়ায় base64 ডেটা এবং EXIF মেটাডেটা অন্তর্ভুক্ত করুন। - **পরিষ্কার**: নির্বাচনের সময় তৈরি অস্থায়ী ফাইল সরান। - **কাস্টমাইজেশন**: UI রঙ, পাঠ্য এবং আচরণের জন্য বিস্তৃত অপশন (যেমন, ক্রপ ফ্রেম, নির্দেশিকা, টুলবার)। ## ইনস্টলেশন ```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-তে স্পষ্টভাবে উল্লেখ করা হয়নি)।