কম্পিউটার টিউটোরিয়াল

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে 네가েটিভ চিত্রকে পজিটিভ চিত্রে রূপান্তর


নেগেটিভ চিত্রকে পজিটিভে রূপান্তর করতে -

  • ImageIO.read() মেথড ব্যবহার করে প্রাযন্তিক ইমেজ পড়ুন।

  • ইমেজের উচ্চতা ও প্রস্থ পান।

  • নেস্টেড ফর লুপ ব্যবহার করে ইমেজের প্রতিটি পিক্সেলের মাধ্যমে ট্রাভার্স করুন।

  • getRGB() মেথড ব্যবহার করে পিক্সেল মান পান।

  • একটি পিক্সেল থেকে প্রতিটি মান রিট্রিভ করতে আপনাকে প্রতিটি রঙের শুরু পজিশনে রাইট শিফট করতে হবে অর্থাৎ আলফার জন্য ২৪, লালের জন্য ১৬ ইত্যাদি এবং 0Xff এর সাথে বিটওয়াইজ AND অপারেশন করতে হবে। এটি ভেরিয়েবলকে মাস্ক করে শেষ ৮ বিট রেখে বাকি সব বিট উপেক্ষা করে।

  • ২৫৫ থেকে বিয়োগ করে নতুন লাল, সবুজ ও নীল মান হিসাব করুন।

  • ARGB কে তাদের সংশ্লিষ্ট পজিশনে লিফট শিফট করে এবং বিটওয়াইজ OR দিয়ে জোড়া দিয়ে একটি পিক্সেল পুনর্নির্মাণ করুন।

  • setRGB() মেথড ব্যবহার করে নতুন পিক্সেল মান সেট করুন।

উদাহরণ

import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class Negative2Color {
    public static void main(String args[]) throws IOException {
        // ইমেজ পড়া হচ্ছে
        File file = new File("D:\\Images\\cat_neg.jpg");
        BufferedImage img = ImageIO.read(file);
        
        for (int y = 0; y < img.getHeight(); y++) {
            for (int x = 0; x < img.getWidth(); x++) {
                // একটি পিক্সেলের কন্টেন্ট রিট্রিভ করা হচ্ছে
                int p = img.getRGB(x, y);
                
                // পিক্সেল মান থেকে A R G B মান পাওয়া
                int a = (p >> 24) & 0xff;
                int r = (p >> 16) & 0xff;
                int g = (p >> 8) & 0xff;
                int b = p & 0xff;
                
                // RGB কে ২৫৫ থেকে বিয়োগ
                r = 255 - r;
                g = 255 - g;
                b = 255 - b;
                
                // নতুন RGB মান সেট
                p = (a << 24) | (r << 16) | (g << 8) | b;
                img.setRGB(x, y, p);
            }
        }
        
        // সংশোধিত ইমেজ সংরক্ষণ
        file = new File("D:\\Images\\negative_positive.jpg");
        ImageIO.write(img, "jpg", file);
        System.out.println("Done...");
    }
}

ইনপুট

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে 네가েটিভ চিত্রকে পজিটিভ চিত্রে রূপান্তর

আউটপুট

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে 네가েটিভ চিত্রকে পজিটিভ চিত্রে রূপান্তর


  1. ওপেনসিভি লাইব্রেরি ব্যবহার করে পজিটিভ চিত্রকে 네가েটিভে রূপান্তর

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে ব্লু/গ্রিন/রেড চিত্রে রূপান্তর

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে গ্রেস্কেলে রূপান্তর

  4. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্র লিখা/সংরক্ষণ