gpt4 book ai didi

Java 相当于 JavaScript 的 Canvas getImageData

转载 作者:搜寻专家 更新时间:2023-11-01 03:29:15 24 4
gpt4 key购买 nike

我正在将 HTML5 的 Canvas 示例移植到 Java,到目前为止一切顺利,直到我开始调用此函数:

Canvas.getContext('2d').getImageData(0, 0, 100, 100).data

我在谷歌上搜索了一会儿,找到了 Canvas 规范的这一页

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#pixel-manipulation

阅读后,我在下面创建了这个函数:

public int[] getImageDataPort(BufferedImage image) {
int width = image.getWidth();
int height = image.getHeight();

int[] ret = new int[width * height * 4];

int idx = 0;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int color = image.getRGB(x, y);

ret[idx++] = getRed(color);
ret[idx++] = getGreen(color);
ret[idx++] = getBlue(color);
ret[idx++] = getAlpha(color);
}
}
return ret;
}

public int getRed(int color) {
return (color >> 16) & 0xFF;
}

public int getGreen(int color) {
return (color >> 8) & 0xFF;
}

public int getBlue(int color) {
return (color >> 0) & 0xFF;
}

public int getAlpha(int color) {
return (color >> 24) & 0xff;
}

Java Graphics API 上是否有内置此功能的类,或者我应该使用我创建的类?

最佳答案

我认为在标准 Java API 中最接近的是 Raster类(class)。你可以得到一个WritableRaster (用于低级图像处理)通过 BufferedImage.getRasterRaster 类然后提供诸如 getSamples 之类的方法用图像数据填充 int[]

关于Java 相当于 JavaScript 的 Canvas getImageData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4933438/

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