我试图获得图像每个像素的每种颜色.我的想法如下:
int[] pixels;
BufferedImage image;
image = ImageIO.read(this.getClass.getResources("image.png");
int[] pixels = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();
Run Code Online (Sandbox Code Playgroud)
是对的吗?我甚至无法检查"像素"数组包含什么,因为我得到以下错误:
java.awt.image.DataBufferByte cannot be cast to java.awt.image.DataBufferInt
Run Code Online (Sandbox Code Playgroud)
我只是希望得到阵列中每个像素的颜色,我该如何实现呢?
我有一组 hWnds 按钮,我想监视点击次数。我还有一组 HWINEVENTHOOK 用于监视它们。GetWindowThreadProcessID 为我提供了一个 LPDWORD 进程 ID,SetWinEventHook 不接受该 ID。我不清楚在这个例子中我是否正确使用了 LPDWORD。请有人能指出我正确的方向吗?
编辑:感谢所有贡献者,我已经在下面发布了更正后的代码。
新代码:
int i = 0;
for (HWND hWnd : hWnds) {
DWORD processID = 0;
DWORD threadID = GetWindowThreadProcessId(hWnd, &processID);
hooks[i] = SetWinEventHook(EVENT_OBJECT_INVOKED, EVENT_OBJECT_INVOKED,
NULL,
WinEventProcCallback, processID, threadID, WINEVENT_OUTOFCONTEXT);
i++;
}
Run Code Online (Sandbox Code Playgroud)