我想將像素陣列轉換為影像,以便我可以讀取影像的每個像素,我已將影像轉換為像素,現在我想做的是我有一張 RGB 圓的圖片,將影像轉換為像素后,我想再次繪制影像但不是再次繪制整個圖片,我想單獨繪制紅色圓圈,單獨繪制綠色圓圈和單獨繪制藍色圓圈并將影像存盤在檔案中,這怎么辦? ?
這是我用來將影像轉換為陣列像素的代碼:
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.PixelGrabber;
import java.io.File;
import java.io.IOException;
public class BMPtoArray {
public static int[] convertToPixels(Image img) {
int width = img.getWidth(null);
int height = img.getHeight(null);
int[] pixel = new int[width * height];
PixelGrabber pg = new PixelGrabber(img, 0, 0, width, height, pixel, 0, width);
try {
pg.grabPixels();
} catch (InterruptedException e) {
throw new IllegalStateException("Error: Interrupted Waiting for Pixels");
}
if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
throw new IllegalStateException("Error: Image Fetch Aborted");
}
return pixel;
}
public static void main(String[] args) throws IOException {
BufferedImage image = ImageIO.read(new File("C:\\Users\\Mhamd\\Desktop\\3rd year
first semester\\Analysis and Coding\\labs\\2.2Java\\src\\circleRGB.bmp"));
//System.out.println(convertToPixels(image));
}
}
這是影像:

所以這基本上就是我想要實作的目標
[![這就是我想要實作的][2]][2]
uj5u.com熱心網友回復:
這是一個如何“關閉”紅色通道的簡單示例:
final BufferedImage image = ImageIO.read(new File("test.bmp"));
int red = 0x00FF0000;
for (int row = 0; row < image.getHeight(); row ) {
for (int col = 0; col < image.getWidth(); col ) {
int color = image.getRGB(col, row);
color &= ~red;
image.setRGB(col, row, color);
}
}
這會將每個 RGB 像素中的紅色設定為 0。您可以重復其他顏色和組合。
這會從您的源影像中生成:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/372481.html
上一篇:更改影像中顏色的不透明度Java
