एक डिजिटल इमेज पिक्सेल्स के 2D एरे के रूप में स्टोर होती है और एक पिक्सेल डिजिटल इमेज का सबसे छोटा तत्व है।
प्रत्येक पिक्सेल में अल्फा, लाल, हरा, नीला मान होते हैं और प्रत्येक रंग का मान 0 से 255 के बीच होता है जो 8 बिट्स (2^8) खर्च करता है।
ARGB मान 4 बाइट्स मेमोरी में उसी क्रम में (दाएं से बाएं) स्टोर होते हैं: नीला मान 0-7 बिट्स पर, हरा मान 8-15 बिट्स पर, लाल मान 16-23 बिट्स पर, और अल्फा 24-31 बिट्स पर।

इमेज के पिक्सेल सामग्री (ARGB मान) प्राप्त करना
इमेज से पिक्सेल मान प्राप्त करने के लिए -
इमेज में प्रत्येक पिक्सेल के माध्यम से लूप करें। यानी इमेज की ऊंचाई और चौड़ाई को पार करते हुए नेस्टेड लूप चलाएं।
getRGB() मेथड का उपयोग करके प्रत्येक बिंदु पर पिक्सेल मान प्राप्त करें।
पिक्सेल मान को पैरामीटर के रूप में पास करके Color ऑब्जेक्ट इंस्टेंटिएट करें।
getRed(), getGreen() और getBlue() मेथड्स का उपयोग करके क्रमशः लाल, हरा, नीला मान प्राप्त करें।
उदाहरण
निम्नलिखित Java उदाहरण इमेज के प्रत्येक पिक्सेल की सामग्री पढ़ता है और RGB मानों को एक फाइल में लिखता है -
import java.io.File;
import java.io.FileWriter;
import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class GetPixels {
public static void main(String args[]) throws Exception {
FileWriter writer = new FileWriter("D:\\Images\\pixel_values.txt");
// इमेज पढ़ना
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();
writer.append(red + ":");
writer.append(green + ":");
writer.append(blue + "");
writer.append("\n");
writer.flush();
}
}
writer.close();
System.out.println("प्रत्येक पिक्सेल पर RGB मान निर्दिष्ट फाइल में स्टोर किए गए हैं");
}
}
आउटपुट
प्रत्येक पिक्सेल पर RGB मान निर्दिष्ट फाइल में स्टोर किए गए हैं
आप शिफ्ट ऑपरेटर्स का उपयोग करके पिक्सेल से RGB मान भी प्राप्त कर सकते हैं -
ऐसा करने के लिए -
प्रत्येक रंग की शुरुआती स्थिति पर राइट शिफ्ट करें यानी अल्फा के लिए 24, लाल के लिए 16, आदि।
राइट शिफ्ट ऑपरेशन अन्य चैनलों के मानों को प्रभावित कर सकता है, इससे बचने के लिए, आपको 0Xff के साथ बिटवाइज AND ऑपरेशन करना होगा। यह वेरिएबल को मास्क करता है जिससे अंतिम 8 बिट्स रह जाते हैं और बाकी सभी बिट्स को अनदेखा कर दिया जाता है।
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;