gpt4 book ai didi

java - Swing PixelGrabber - 数据排序

转载 作者:行者123 更新时间:2023-12-02 05:47:33 26 4
gpt4 key购买 nike

我正在研究将图像颜色排序为二维颜色数组(行/列)。我已经实现了 PixelGrabber,但我无法准确理解发生了什么,以及如何使用 data 对二维数组进行排序。谢谢!

File file = fc.getSelectedFile();

try {
BufferedImage img = ImageIO.read(file);
PixelGrabber grabber = new PixelGrabber(img, 0, 0, -1, -1, false);
if (grabber.grabPixels()) {
int width = grabber.getWidth();
int height = grabber.getHeight();
int[][] imageColors = new int[width][height]; //I want to store colors in here
int[] data = (int[]) grabber.getPixels();
}
} catch (Exception f) {
}

最佳答案

基本上,从 PixelGrabber 返回的像素数组是像素数据的一维数组,它基本上是图像数据的“平面”表示

要获取给定 x/y 位置处的特定像素,您需要将数组中的位置偏移 (y * width) + x。因此,要将像素数据从一维数组复制到二维数组,您需要一个复合 for 循环。例如...

for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
imageColors[x][y] = data[(y * width) + x];
}
}

关于java - Swing PixelGrabber - 数据排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23899515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com