Ảnh số lưu dưới dạng mảng 2D pixel. Mỗi pixel chứa alpha, red, green, blue (0-255, 8 bit).
Sắp xếp bộ nhớ 4 byte (phải sang trái): Blue (0-7 bit), Green (8-15), Red (16-23), Alpha (24-31).

Lấy giá trị ARGB từ ảnh
- Duyệt qua từng pixel (lồng vòng for height, width).
- Lấy giá trị pixel bằng getRGB().
- Tạo đối tượng Color từ pixel.
- Lấy R, G, B bằng getRed(), getGreen(), getBlue().
Ví dụ: Lưu RGB vào file
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 = new Color(pixel, true);
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 values stored in file");
}
}
Cách thay thế: Dùng bitwise shift
int p = img.getRGB(x, y);
int a = (p >> 24) & 0xff;
int r = (p >> 16) & 0xff;
int g = (p >> 8) & 0xff;
int b = p & 0xff;
Dịch phải đến vị trí bit bắt đầu của từng kênh, sau đó AND với 0xFF để mask lấy 8 bit cuối.