नेगेटिव इमेज को पॉजिटिव में बदलने के लिए −
ImageIO.read() मेथड का उपयोग करके आवश्यक इमेज पढ़ें।
इमेज की ऊंचाई और चौड़ाई प्राप्त करें।
नेस्टेड फॉर लूप का उपयोग करके इमेज में प्रत्येक पिक्सेल को पार करें।
getRGB() मेथड का उपयोग करके पिक्सेल मान प्राप्त करें।
लाल, हरे और नीले मानों को 255 से घटाकर नए मानों की गणना करें।
ARGB को उनकी संबंधित स्थितियों में लेफ्ट शिफ्ट करके और बिटवाइज़ OR का उपयोग करके उन्हें जोड़कर एक पिक्सेल को पुनर्निर्मित करें।
setRGB() मेथड का उपयोग करके नए पिक्सेल मान सेट करें।
एक पिक्सेल से प्रत्येक मान को पुनर्प्राप्त करने के लिए आपको प्रत्येक रंग की शुरुआती स्थिति में राइट शिफ्ट करने की आवश्यकता है यानी अल्फा के लिए 24, लाल के लिए 16 आदि और 0Xff के साथ बिटवाइज़ AND ऑपरेशन करें। यह वेरिएबल को मास्क करता है जिससे अंतिम 8 बिट्स रह जाते हैं और बाकी सभी बिट्स को अनदेखा कर दिया जाता है।
उदाहरण
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 को 255 से घटा रहा है 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..."); } }इनपुट

आउटपुट
