回答編集履歴
4
もうちょっとPythonicに
answer
CHANGED
@@ -5,9 +5,8 @@
|
|
5
5
|
|
6
6
|
user32 = windll.LoadLibrary("user32.dll")
|
7
7
|
gdi32 = windll.LoadLibrary("gdi32.dll")
|
8
|
-
hdc = user32.GetDC(None)
|
9
8
|
|
10
|
-
def getrgb(x, y):
|
9
|
+
def getrgb(x, y, hdc=user32.GetDC(None)):
|
11
10
|
bgr = gdi32.GetPixel(hdc, x, y)
|
12
11
|
return bgr.to_bytes(3, "little")
|
13
12
|
|
3
ちゃんと速さを追い求めて
answer
CHANGED
@@ -3,13 +3,14 @@
|
|
3
3
|
```python
|
4
4
|
from ctypes import windll
|
5
5
|
|
6
|
-
x, y = 10, 10
|
7
|
-
|
8
6
|
user32 = windll.LoadLibrary("user32.dll")
|
9
7
|
gdi32 = windll.LoadLibrary("gdi32.dll")
|
10
8
|
hdc = user32.GetDC(None)
|
11
|
-
bgr = gdi32.GetPixel(hdc, x, y)
|
12
|
-
r, g, b = bgr.to_bytes(3, "little")
|
13
9
|
|
10
|
+
def getrgb(x, y):
|
11
|
+
bgr = gdi32.GetPixel(hdc, x, y)
|
12
|
+
return bgr.to_bytes(3, "little")
|
13
|
+
|
14
|
+
r, g, b = getrgb(10, 10)
|
14
15
|
print("R={r}, G={g}, B={b}".format(r=r, g=g, b=b))
|
15
16
|
```
|
2
unpackいらなかった
answer
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
```python
|
4
4
|
from ctypes import windll
|
5
|
-
from struct import unpack
|
6
5
|
|
7
6
|
x, y = 10, 10
|
8
7
|
|
1
エンディアンの変更
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
gdi32 = windll.LoadLibrary("gdi32.dll")
|
11
11
|
hdc = user32.GetDC(None)
|
12
12
|
bgr = gdi32.GetPixel(hdc, x, y)
|
13
|
-
|
13
|
+
r, g, b = bgr.to_bytes(3, "little")
|
14
14
|
|
15
15
|
print("R={r}, G={g}, B={b}".format(r=r, g=g, b=b))
|
16
16
|
```
|