<dependencies>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-core</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecodeParam;
import com.sun.media.jai.codec.ImageDecoder;
public class ImageProcessor {
public static void main(String[] args) {
try {
FileSeekableStream stream = new FileSeekableStream(new File("input.jpg"));
ImageDecoder decoder = ImageCodec.createImageDecoder("JPEG", stream, param);
RenderedOp image = decoder.decodeAsRenderedOp(0);
BufferedImage redChannel = image.getAsBufferedImage().getSubimage(0, 0, image.getWidth(), image.getHeight());
int[] pixels = redChannel.getRGB(0, 0, redChannel.getWidth(), redChannel.getHeight(), null, 0, redChannel.getWidth());
for (int i = 0; i < pixels.length; i++) {
int alpha = (pixels[i] >> 24) & 0xFF;
int red = (pixels[i] >> 16) & 0xFF;
}
redChannel.setRGB(0, 0, redChannel.getWidth(), redChannel.getHeight(), pixels, 0, redChannel.getWidth());
File output = new File("output.jpg");
ImageIO.write(redChannel, "JPEG", output);
} catch (Exception e) {
e.printStackTrace();
}
}
}