1. পণ্য
  2.   ছবি
  3.   Java
  4.   Apache Commons Imaging
 
  

ওপেন সোর্স জাভা ইমেজ প্রসেসিং এবং ম্যানিপুলেশন

লিডিং ওপেন সোর্স জাভা ইমেজ এডিটিং এবং ম্যানিপুলেশন লাইব্রেরি PNG, JPEG, BMP, TIFF, ICO এবং আরও অনেক কিছুর মতো বহুল ব্যবহৃত ফরম্যাট পড়তে, লিখতে, ম্যানিপুলেট এবং রূপান্তর করতে দেয়।

অ্যাপাচি কমন্স ইমেজিং কি?

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

অ্যাপাচি কমন্স ইমেজিং হল একটি শক্তিশালী এবং বহুমুখী লাইব্রেরি যা জাভা অ্যাপ্লিকেশনগুলিতে ইমেজ ফাইলগুলির সাথে কাজ করার প্রক্রিয়াটিকে সহজ করে। এটি একটি জাভা-ভিত্তিক লাইব্রেরি যা একাধিক ইমেজ ফরম্যাট যেমন PNG, JPEG, BMP, GIF, TIFF, ICO ইত্যাদি সমর্থন করে। তদুপরি, এটি হিস্টোগ্রাম গণনা, রঙের স্থান রূপান্তর এবং চিত্র বিভাজন সহ চিত্র বিশ্লেষণের জন্য সরঞ্জাম সরবরাহ করে। এটি একইভাবে বিকাশকারী, গবেষক এবং উত্সাহীদের জন্য একটি আদর্শ পছন্দ। লাইব্রেরিটি ইমেজ ম্যানিপুলেশনের জন্য একটি দক্ষ এবং সহজ-থেকে-ব্যবহারের API অফার করে, যা বিশেষত সম্পদ-নিরোধিত পরিবেশে কার্যকর হতে পারে। আপনি এমন একটি প্রকল্পে কাজ করছেন যা ইমেজ প্রসেসিং প্রয়োজন, বা কেবল ইমেজ ম্যানিপুলেশন নিয়ে পরীক্ষা করতে চান, অ্যাপাচি কমন্স ইমেজিং অবশ্যই অন্বেষণের মূল্যবান৷

Previous Next

Apache Commons Imaging দিয়ে শুরু করা

অ্যাপাচি কমন্স ইমেজিং ইনস্টল করার প্রস্তাবিত উপায় হল ম্যাভেন রিপোজিটরি ব্যবহার করা। একটি মসৃণ ইনস্টলেশনের জন্য অনুগ্রহ করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন৷

অ্যাপাচি কমন্স ইমেজিংয়ের জন্য ম্যাভেন সংগ্রহস্থল

 

<repositories>
	<repository>
	<id>AsposeJavaAPI</id>
	<name>Aspose Java API</name>
	<url>https://releases.aspose.com/java/repo/</url>
	</repository>
</repositories>

//Define Aspose.PDF for Java API Dependency

<dependencies>
	<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-imaging</artifactId>
	<version>1.0.0-alpha5</version>
	</dependency>
</dependencies>

গিটহাবের মাধ্যমে অ্যাপাচি কমন্স ইমেজিং ইনস্টল করুন

go get -u https://github.com/apache/commons-imaging.git 

You can download the library directly from GitHub product page

জাভা অ্যাপের ভিতরে ছবি রূপান্তর

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

কিভাবে জাভা API এর মাধ্যমে একটি PNG ফাইলকে BMP ফাইল ফরম্যাটে রূপান্তর করবেন?


File inputFile = new File("diagram.png");
BufferedImage image = Imaging.getBufferedImage(inputFile);
File outputFile = new File("converted_image.bmp");
Imaging.writeImage(image, outputFile, ImageFormats.BMP, null);

জাভা লাইব্রেরির মাধ্যমে ইমেজ ম্যানিপুলেশন

আপাচি কমন্স ইমেজিং অন্যান্য জাভা লাইব্রেরির সাথে একত্রে ব্যবহার করা যেতে পারে যেমন বাফারেড ইমেজের সাধারণ চিত্র পরিবর্তন যেমন আকার পরিবর্তন, ক্রপিং এবং স্কেলিং করার জন্য। অন্য একটি জাভা ইমেজ-প্রসেসিং লাইব্রেরি (imgscalr) থেকে Scalr.resize() পদ্ধতিটি রিসাইজ করার জন্য ব্যবহার করা হয়, এরপর Apache Commons Imaging ব্যবহার করে রিসাইজ করা ছবি সংরক্ষণ করা হয়। এটি উন্নত ইমেজ ম্যানিপুলেশনের জন্য অন্যান্য জাভা লাইব্রেরির সাথে নিরবচ্ছিন্ন একীকরণের অনুমতি দেয়৷

কিভাবে জাভা অ্যাপের ভিতরে একটি চিত্রের আকার পরিবর্তন করবেন?

BufferedImage originalImage = Imaging.getBufferedImage(new File("sample_image.png"));
BufferedImage resizedImage = Scalr.resize(originalImage, 300); // Resize width to 300px

File outputFile = new File("resized_image.png");
Imaging.writeImage(resizedImage, outputFile, ImageFormats.PNG, null);

জাভা API এর মাধ্যমে চিত্র মেটাডেটা নিষ্কাশন

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

কিভাবে Java API এর মাধ্যমে ছবি থেকে মেটাডেটা বের করবেন?

File imageFile = new File("diagram.png");
ImageInfo imageInfo = Imaging.getImageInfo(imageFile);
System.out.println("Format: " + imageInfo.getFormat());
System.out.println("Width: " + imageInfo.getWidth());
System.out.println("Height: " + imageInfo.getHeight());

জাভা অ্যাপে কাস্টম ইমেজ রেন্ডারিং

সফ্টওয়্যার বিকাশকারীরা ফ্লাইতে ইমেজ তৈরি করতে বা জাভা অ্যাপ্লিকেশানগুলির মধ্যে বিদ্যমানগুলিকে সংশোধন করতে অ্যাপাচি কমন্স ইমেজিং ব্যবহার করতে পারে। জাভার নেটিভ Graphics2D-এর সাথে লাইব্রেরি একত্রিত করে, প্রোগ্রাম্যাটিকভাবে ছবি আঁকা বা টীকা যোগ করা সম্ভব। নিম্নলিখিত কোড উদাহরণটি একটি ফাঁকা চিত্র তৈরি করে, এতে পাঠ্য যোগ করে এবং এটি একটি PNG ফাইল হিসাবে সংরক্ষণ করে। এটি প্রদর্শন করে কিভাবে Apache Commons Imaging জাভা-এর অঙ্কন API-এর সাথে কাজ করতে পারে স্ক্র্যাচ থেকে ছবি তৈরি করতে।

কিভাবে জাভা দিয়ে স্ক্র্যাচ থেকে ছবি তৈরি করবেন?

BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setPaint(Color.WHITE);
graphics.fillRect(0, 0, image.getWidth(), image.getHeight());

graphics.setPaint(Color.BLACK);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Custom Diagram", 100, 150);

graphics.dispose();
File outputFile = new File("custom_image.png");
Imaging.writeImage(image, outputFile, ImageFormats.PNG, null);
 বাংলা