एक पिक्सेल डिजिटल इमेज का सबसे छोटा तत्व है, प्रत्येक पिक्सेल में अल्फा, लाल, हरे, नीले मान होते हैं। पिक्सेल मान 32-बिट मेमोरी स्पेस में ARGB मानों (प्रत्येक 8 बिट) को उसी क्रम में संग्रहीत करता है। इसलिए, इमेज के रंग को संशोधित करने के लिए −
आपको इमेज में प्रत्येक पिक्सेल के माध्यम से लूप करने की आवश्यकता है।
getRGB() मेथड का उपयोग करके पिक्सेल मान प्राप्त करें।
पिक्सेल मान से ARGB मान प्राप्त करें।
RGB मानों में आवश्यक संशोधन करें।
संशोधित RGB मानों के साथ एक नया पिक्सेल मान बनाएं।
setRGB() मेथड का उपयोग करके नए पिक्सेल मान सेट करें।
ARGB मान सेट करना −
पिक्सेल मान को पैरामीटर के रूप में पास करके Color ऑब्जेक्ट को इंस्टेंटिएट करें। getRed(), getGreen() और getBlue() मेथड्स का उपयोग करके लाल, हरे, नीले मान प्राप्त करें। संशोधन के बाद मानों को वापस सेट करने के लिए −
नए RGB मानों को पैरामीटर के रूप में पास करके एक Color ऑब्जेक्ट बनाएं।
Color क्लास के getRGB() मेथड का उपयोग करके कलर ऑब्जेक्ट से पिक्सेल मान प्राप्त करें।
x और y स्थितियों के साथ नए पिक्सेल मान को setRGB() मेथड में पास करके इमेज पर नया पिक्सेल मान सेट करें।
उदाहरण
import java.io.File; import java.io.IOException; import java.awt.Color; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; public class SetPixels { public static void main(String args[])throws IOException { // इमेज पढ़ रहा है File file= new File("D:\\Images\\cat.jpg"); BufferedImage img = ImageIO.read(file); for (int y = 0; y < img.getHeight(); y++) { for (int x = 0; x < img.getWidth(); x++) { // एक पिक्सेल की सामग्री प्राप्त कर रहा है int pixel = img.getRGB(x,y); // पिक्सेल मान से Color ऑब्जेक्ट बना रहा है Color color = new Color(pixel, true); // R G B मान प्राप्त कर रहा है int red = color.getRed(); int green = color.getGreen(); int blue = color.getBlue(); // RGB मानों को संशोधित कर रहा है green = 150; blue = 150; // नया Color ऑब्जेक्ट बना रहा है color = new Color(red, green, blue); // इमेज पर नया Color ऑब्जेक्ट सेट कर रहा है img.setRGB(x, y, color.getRGB()); } } // संशोधित इमेज सेव कर रहा है file = new File("D:\\Images\\setting_pixels.jpg"); ImageIO.write(img, "jpg", file); System.out.println("Done..."); } }इनपुट

आउटपुट

शिफ्ट ऑपरेटर्स का उपयोग करके ARGB मान सेट करना −
एक पिक्सेल से प्रत्येक मान को पुनर्प्राप्त करने के लिए आपको प्रत्येक रंग की शुरुआती स्थिति में राइट शिफ्ट करने की आवश्यकता है यानी अल्फा के लिए 24, लाल के लिए 16 आदि और 0Xff के साथ बिटवाइज़ AND ऑपरेशन करें। यह वेरिएबल को मास्क करता है जिससे अंतिम 8 बिट्स रह जाते हैं और बाकी सभी बिट्स को अनदेखा कर दिया जाता है।
आप ARGB को उनकी संबंधित स्थितियों में लेफ्ट शिफ्ट करके और बिटवाइज़ OR का उपयोग करके उन्हें जोड़कर एक पिक्सेल को पुनर्निर्मित कर सकते हैं।
//नया RGB मान सेट करें p = (a<<24) | (r<<16) | (g<<8) | b; img.setRGB(x, y, p);