Deskew ইমেজ

জাভা ক্লাউড SDK ব্যবহার করে Deskew ইমেজ বা Deskew PDF

আমরা কাজের এবং ব্যক্তিগত ব্যবহারের জন্য যে বিপুল সংখ্যক রাস্টার চিত্রগুলি পাই তা হয় ডিজিটাল স্ক্যানারের মাধ্যমে স্ক্যান করা ছবি বা মোবাইল ডিভাইস থেকে একটি ছবি হতে পারে। তাই মোটামুটি সম্ভাবনা রয়েছে যে একটি চিত্রের ভিতরের পাঠ্যটি সঠিকভাবে সারিবদ্ধ নয় এবং অনুভূমিকভাবে বা উল্লম্বভাবে পৃষ্ঠা মার্জিন জুড়ে চলে। সহজ কথায়, স্ক্যান করা ছবিগুলি প্রায়শই স্ক্যানারে তির্যক (কাগজটি সরানো/ঘোরানো হয়েছিল)। এখন এই ধরনের সমস্যাগুলি সমাধান করার জন্য, আমরা deskewing নামে একটি কৌশল বেছে নিই যা এমন একটি প্রক্রিয়া যেখানে একটি চিত্রকে তার তির্যকের সমান পরিমাণে কিন্তু বিপরীত দিকে ঘোরানোর মাধ্যমে স্কু অপসারণ করা হয়। Deskew বৈশিষ্ট্যটি স্বয়ংক্রিয় চিত্র প্রক্রিয়াকরণে অত্যন্ত কার্যকর, যখন চিত্রগুলি স্ক্যানার থেকে আসে।

এখন এই নিবন্ধে, আমরা জাভা ক্লাউড SDK ব্যবহার করে কীভাবে ইমেজ ডেস্কু করতে হয় তার বিশদ বিবরণ দেখছি। সুতরাং deskew ফাংশন দুটি ধাপে কাজ করে অর্থাৎ চিত্রের তির্যকের কোণ সনাক্ত করে এবং তারপরে তির্যক সংশোধন করতে চিত্রটিকে ঘোরায়। আমরা প্রাপ্ত ফ্যাক্সগুলিতে এই অপারেশনটি প্রয়োগ করতে পারি এবং চিত্রের তথ্য (টেক্সট) ব্যবহার করে, কাগজের মার্জিন নয়, ঘূর্ণনের কোণ গণনা করতে পারি এবং প্রয়োজনীয়তা পূরণ করতে পারি। তবুও, আমরা বুঝতে পারি যে 1 বিট, 8 বিট এবং 24 বিট রঙিন চিত্রগুলিতে ইমেজ ডেস্কউ অপারেশন করা যেতে পারে।

Deskew ইমেজ API

ইমেজ সমর্থন করার জন্য আমাদের কাছে REST ভিত্তিক API রয়েছে যা ক্লাউডে ইমেজ ফাইল ম্যানিপুলেট করার ক্ষমতা প্রদান করে। এখন জাভা অ্যাপ্লিকেশনের জন্য, আমরা বিশেষভাবে [Aspose.Imaging Cloud SDK for Java] তৈরি করেছি 17 যা আপনাকে জাভা কোডের মাধ্যমে ইমেজ প্রসেসিং ক্ষমতা প্রয়োগ করতে সক্ষম করে। এখন Java ক্লাউড SDK ব্যবহার করে ছবি Deskew করার জন্য, প্রথম ধাপ হল pom.xml (maven বিল্ড টাইপ প্রজেক্ট) এ নিম্নলিখিত তথ্যগুলি অন্তর্ভুক্ত করে জাভা প্রকল্পে এর রেফারেন্স যোগ করা।

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

পরবর্তী ধাপ হল ক্লাউড ড্যাশবোর্ড থেকে ক্লায়েন্টের শংসাপত্রগুলি প্রাপ্ত করা এবং যদি আপনার অ্যাসপোজ ক্লাউড ড্যাশবোর্ড-এ কোনো অ্যাকাউন্ট না থাকে, তাহলে অনুগ্রহ করে বৈধ ইমেল ঠিকানার মাধ্যমে একটি বিনামূল্যের অ্যাকাউন্ট তৈরি করুন। এখন নতুন তৈরি অ্যাকাউন্ট ব্যবহার করে লগইন করুন এবং Aspose ক্লাউড ড্যাশবোর্ডে ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট দেখুন/তৈরি করুন।

Deskew ইমেজ অনলাইন জাভা ব্যবহার করে

জাভা কোড স্নিপেট ব্যবহার করে কীভাবে ইমেজ ডেসকু করা যায় তার বিস্তারিত অন্বেষণ করা যাক। এই উদাহরণের জন্য, আমরা স্থানীয় ড্রাইভ থেকে টিআইএফএফ ইমেজ লোড করছি এবং ডেস্কউ ফটো অপারেশন প্রয়োগ করছি। ফলস্বরূপ ফাইলটি ক্লাউড স্টোরেজে সংরক্ষণ করা হয়।

  • প্রথমত, ব্যক্তিগতকৃত ক্লায়েন্ট শংসাপত্রের উপর ভিত্তি করে ImagingApi-এর একটি বস্তু তৈরি করুন
  • দ্বিতীয়ত, একটি বুলিয়ান ভেরিয়েবল তৈরি করুন যা ইমেজটিকে আনুপাতিকভাবে রিসাইজ করতে নির্দেশ করে
  • এখন readAllBytes(…) পদ্ধতি ব্যবহার করে উৎস TIFF-এর বিষয়বস্তু পড়ুন এবং বাইট[] অ্যারেতে পাস করুন
  • পরবর্তী পদক্ষেপটি হল CreateDeskewedImageRequest এর একটি উদাহরণ তৈরি করা যার জন্য বাইট অ্যারে, পটভূমির রঙের জন্য ঐচ্ছিক পরামিতি এবং ফলস্বরূপ ডেস্কউ ছবির নাম প্রয়োজন
  • অবশেষে, মেথডটিকে ডেস্কিউ ইমেজ করার জন্য createDeskewedImage(…) কল করুন। ফলস্বরূপ টিআইএফএফ ক্লাউড স্টোরেজে সংরক্ষণ করা হয়
// https://dashboard.aspose.cloud/ থেকে ClientID এবং ClientSecret পান
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// ইমেজিং অবজেক্ট তৈরি করুন
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// আনুপাতিকভাবে ডেস্কিউড ইমেজের আকার পরিবর্তন করতে পরিবর্তনশীল সেট করুন
boolean resizeProportionally = true;
			
// পটভূমির রঙের তথ্য
String bkColor = "white";

// স্থানীয় ড্রাইভ থেকে ফাইল লোড করুন
File f = new File("DeskewSampleImage.tiff");

// বাইট অ্যারেতে TIFF চিত্রের বিষয়বস্তু পড়ুন
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// ডেস্কউ ইমেজ বৈশিষ্ট্য সংজ্ঞায়িত করার জন্য একটি বস্তু তৈরি করুন
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);

// Deskew ফটো এবং ক্লাউড স্টোরেজ আউটপুট সংরক্ষণ করুন
imageApi.createDeskewedImage(request);

এখন আপনি যদি স্থানীয়/নেটওয়ার্ক ড্রাইভে ফলাফল টিআইএফএফ সংরক্ষণ করতে চান, তাহলে অনুগ্রহ করে নিম্নলিখিত কোড স্নিপেটটি ব্যবহার করার চেষ্টা করুন।

// https://dashboard.aspose.cloud/ থেকে ClientID এবং ClientSecret পান
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// ইমেজিং অবজেক্ট তৈরি করুন
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// আনুপাতিকভাবে ডেস্কিউড ইমেজের আকার পরিবর্তন করতে পরিবর্তনশীল সেট করুন
boolean resizeProportionally = true;
			
// পটভূমির রঙের তথ্য
String bkColor = "white";

// স্থানীয় ড্রাইভ থেকে ফাইল লোড করুন
File f = new File("DeskewSampleImage.tif");

// বাইট অ্যারেতে TIFF চিত্রের বিষয়বস্তু পড়ুন
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// ডেস্কউ ইমেজ বৈশিষ্ট্য সংজ্ঞায়িত করার জন্য একটি বস্তু তৈরি করুন
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);

// Deskew ফটো এবং স্ট্রিম অবজেক্ট হিসাবে আউটপুট রিটার্ন
byte[] updatedImage = imageApi.createDeskewedImage(request);

// udpated TIFF চিত্র সংরক্ষণের পথ
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();

// ফটো ডেস্কু করতে API-কে কল করুন এবং স্থানীয় ড্রাইভে সংরক্ষণ করুন
Files.write(path, updatedImage);
ডেস্কু ইমেজ

Deskew ছবির পূর্বরূপ

উপরের উদাহরণে ব্যবহৃত নমুনা TIFF চিত্রটি DeskewSampleImage.tif থেকে ডাউনলোড করা যেতে পারে।

সিআরএল কমান্ড ব্যবহার করে পিডিএফকে ডেসকিউ করুন

আমরা একটি পিডিএফ ফাইল পেতে পারি যাতে ডেসকুইড ইমেজ থাকে তাই একটি দ্রুত সমাধান হল পিডিএফ ফাইল থেকে ইমেজ বের করা এবং তারপর ইমেজগুলোকে ডেসকিউ করা। এখন এই প্রয়োজনীয়তা পূরণ করার জন্য, আমরা এখানে দুটি ক্লাউড এপিআই ব্যবহার করতে যাচ্ছি অর্থাৎ Aspose.PDF Cloud পিডিএফ ফাইল থেকে ইমেজ বের করতে এবং Aspose.Imaging ক্লাউড থেকে ফটো ডেসকিউ করতে। যাইহোক, আমরা কোন অপারেশন করার আগে, প্রথমে আমাদের নিম্নলিখিত কমান্ড ব্যবহার করে প্রথমে একটি JWT অ্যাক্সেস টোকেন (ক্লায়েন্ট শংসাপত্রের উপর ভিত্তি করে) তৈরি করতে হবে।

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

একবার আমাদের কাছে JWT টোকেন হয়ে গেলে, আমাদের Aspose.PDF ক্লাউডের GrayscaleImage API ব্যবহার করে পিডিএফ ছবি বের করতে হবে। ছবিগুলি টিআইএফএফ ফর্ম্যাটে বের করা হয় এবং ক্লাউড স্টোরেজে সংরক্ষণ করা হয়।

curl -v -X PUT "https://api.aspose.cloud/v3.0/pdf/Resultant.pdf/pages/1/images/extract/tiff?width=0&height=0" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

এখন যেহেতু ছবিগুলি পিডিএফ ফাইল থেকে TIFF ফরম্যাট হিসাবে বের করা হয়েছে, এখন আমাদেরকে Aspose.Imaging Cloud এর DeskewImage API কল করতে হবে। যেহেতু ফলাফলের ফাইলটি প্রতিক্রিয়া স্ট্রীমে ফিরে আসে, তাই আমরা এটিকে আমাদের স্থানীয় ড্রাইভে সংরক্ষণ করতে পারি।

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.tiff/deskew?resizeProportionally=true&bkColor=White" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Deskewed.tiff

উপসংহার

এই সময়ের মধ্যে, আমরা জাভা ক্লাউড এসডিকে ব্যবহার করে ডেস্কউ ইমেজ এবং পিডিএফ ডেস্কউ করার কিছু আশ্চর্যজনক এবং সহজ ধাপ শিখেছি। তাই এখন আমরা জাভা কোড স্নিপেট ব্যবহার করে বা cURL commnds ব্যবহার করে আমাদের প্রয়োজনীয়তাগুলি পূরণ করতে পারি। একই সময়ে, আমরা আপনাকে API দ্বারা অফার করা অন্যান্য উত্তেজনাপূর্ণ বৈশিষ্ট্যগুলি সম্পর্কে আরও জানতে প্রোডাক্ট ডকুমেন্টেশন অন্বেষণ করতে উত্সাহিত করি৷

দয়া করে মনে রাখবেন যে আমাদের সমস্ত ক্লাউড SDK গুলি MIT লাইসেন্সের অধীনে তৈরি করা হয়েছে যাতে সম্পূর্ণ সোর্স কোডটি GitHub থেকে ডাউনলোড করা যায়। সবশেষে, API ব্যবহার করার সময় আপনি যদি কোনো সমস্যার সম্মুখীন হন, তাহলে আপনি বিনামূল্যে প্রোডাক্ট সাপোর্ট ফোরাম এর মাধ্যমে দ্রুত সমাধানের জন্য আমাদের কাছে যাওয়ার কথা বিবেচনা করতে পারেন।

সম্পরকিত প্রবন্ধ

সম্পর্কে আরও জানতে অনুগ্রহ করে নিম্নলিখিত লিঙ্কগুলিতে যান: