Android-এ ML Kit-এর মাধ্যমে ডকুমেন্ট স্ক্যানার
আপনার অ্যাপে সহজেই ডকুমেন্ট স্ক্যানার ফিচার যোগ করতে ML Kit ডকুমেন্ট স্ক্যানার API ব্যবহার করুন।
| ফিচার | বিবরণ |
|---|---|
| Sdk-এর নাম | play-services-mlkit-document-scanner |
| প্রয়োগ | মডেল, স্ক্যানিং লজিক ও UI ফ্লো Google Play পরিষেবা দ্বারা ডায়নামিকভাবে ডাউনলোড করা হয়। |
| অ্যাপের সাইজের প্রভাব | ~৩০০ কেবি ডাউনলোডের সাইজ বৃদ্ধি। |
| শুরু করার সময় | প্রথমবার ব্যবহার করার আগে মডেল, লজিক ও UI ফ্লো ডাউনলোড করার জন্য ব্যবহারকারীকে অপেক্ষা করতে হতে পারে। |
এটি ব্যবহার করে দেখুন
এই API-এর ব্যবহারিক উদাহরণ দেখতে স্যাম্পেল অ্যাপ ব্যবহার করে দেখুন।
শুরু করার আগে
আপনার প্রোজেক্ট-লেভেল
build.gradleফাইলে, আপনার buildscript এবং allprojects বিভাগে Google-এর Maven রিপোজিটরি অন্তর্ভুক্ত করতে ভুলবেন না।আপনার মডিউলের অ্যাপ-লেভেল গ্রেডেল ফাইলে ML Kit ডকুমেন্ট স্ক্যানার লাইব্রেরির জন্য ডিপেন্ডেন্সি যোগ করুন, যা সাধারণত app/build.gradle:
dependencies {
// …
implementation 'com.google.android.gms:play-services-mlkit-document-scanner:16.0.0'
}
ডকুমেন্ট স্ক্যানার কনফিগারেশন
ডক্যুমেন্ট স্ক্যানার ইউজার ফ্লো (যার মধ্যে একটি নির্দিষ্ট ভিউফাইন্ডার স্ক্রিন এবং প্রিভিউ স্ক্রিন অন্তর্ভুক্ত) SDK দ্বারা প্রদান করা হয়। ভিউফাইন্ডার ও প্রিভিউ স্ক্রিনে নিম্নলিখিত কাস্টমাইজ করা যায় এমন কন্ট্রোল কাজ করে:
- ফটো গ্যালারি থেকে ইমপোর্ট করা হচ্ছে
- স্ক্যান করা পৃষ্ঠার সংখ্যার সীমা সেট করা
- স্ক্যানার মোড (ফ্লোতে ফিচার সেট কন্ট্রোল করতে)
আপনার স্ক্যান করা ডকুমেন্টের জন্য PDF ও JPEG ফাইল, দুটিই ফিরিয়ে আনতে পারবেন।
স্ক্যানার বিকল্প কনফিগার করতে GmsDocumentScannerOptions ইনস্ট্যান্টিয়েট করুন:
Kotlin
val options = GmsDocumentScannerOptions.Builder()
.setGalleryImportAllowed(false)
.setPageLimit(2)
.setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF)
.setScannerMode(SCANNER_MODE_FULL)
.build()Java
GmsDocumentScannerOptions options = new GmsDocumentScannerOptions.Builder()
.setGalleryImportAllowed(false)
.setPageLimit(2)
.setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF)
.setScannerMode(SCANNER_MODE_FULL)
.build();ডকুমেন্ট স্ক্যান করুন
আপনার GmsDocumentScannerOptions তৈরি করার পরে, GmsDocumentScanner-এর ইনস্ট্যান্স
পান। তারপর আপনি AndroidX-এ নিয়ে আসা
অ্যাক্টিভিটি ফলাফল API
অনুসরণ করে স্ক্যানার অ্যাক্টিভিটি শুরু করতে পারবেন।
ডকুমেন্ট স্ক্যান করা সম্পূর্ণ হলে, GmsDocumentScanningResult অবজেক্ট স্ক্যান করা পৃষ্ঠার সংখ্যা, JPEG ফর্ম্যাটে ছবির URI এবং setResultFormats-এর মাধ্যমে যা সংজ্ঞায়িত করা হয়েছে সেই অনুযায়ী PDF-এ অ্যাক্সেস দেবে:
Kotlin
val scanner = GmsDocumentScanning.getClient(options) val scannerLauncher = registerForActivityResult(StartIntentSenderForResult()) { result -> { if (result.resultCode == RESULT_OK) { val result = GmsDocumentScanningResult.fromActivityResultIntent(result.data) result.getPages()?.let { pages -> for (page in pages) { val imageUri = pages.get(0).getImageUri() } } result.getPdf()?.let { pdf -> val pdfUri = pdf.getUri() val pageCount = pdf.getPageCount() } } } } scanner.getStartScanIntent(activity) .addOnSuccessListener { intentSender -> scannerLauncher.launch(IntentSenderRequest.Builder(intentSender).build()) } .addOnFailureListener { ... }
Java
GmsDocumentScanner scanner = GmsDocumentScanning.getClient(options); ActivityResultLauncher<IntentSenderRequest> scannerLauncher = registerForActivityResult( new StartIntentSenderForResult(), result -> { if (result.getResultCode() == RESULT_OK) { GmsDocumentScanningResult result = GmsDocumentScanningResult.fromActivityResultIntent(result.getData()); for (Page page : result.getPages()) { Uri imageUri = pages.get(0).getImageUri(); } Pdf pdf = result.getPdf(); Uri pdfUri = pdf.getUri(); int pageCount = pdf.getPageCount(); } }); scanner.getStartScanIntent(activity) .addOnSuccessListener(intentSender -> scannerLauncher.launch(new IntentSenderRequest.Builder(intentSender).build())) .addOnFailureListener(...);
পারফর্ম্যান্স উন্নত করার পরামর্শ
মনে রাখবেন যে ডকুমেন্ট ফাইল তৈরি করতে সময় লাগে এবং প্রসেসিং পাওয়ারের প্রয়োজন হয়, তাই শুধুমাত্র সেই আউটপুট ফর্ম্যাট (JPEG, বা PDF, অথবা দুটিই) অনুরোধ করুন যা আপনার সত্যিই প্রয়োজন।