此代码给出鼠标指针的即时X-Y坐标、RGB值和十六进制值。坐标和RGB值是正确的,但经过一段时间后,十六进制值给出了错误的结果。你知道吗
import pyautogui
import time
def print_no_newline(string):
import sys
sys.stdout.write("\r")
sys.stdout.write(string)
sys.stdout.flush()
try:
while True:
x, y = pyautogui.position()
pixelColor = pyautogui.screenshot().getpixel((x, y))
ss = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
r = int(str(pixelColor[0]).rjust(3))
g = int(str(pixelColor[1]).rjust(3))
b = int(str(pixelColor[2]).rjust(3))
hex = "#{:02x}{:02x}{:02x}".format(r,g,b)
hexstr=str(hex)
res= ss + ' RGB: ('+ str(r) +','+ str(g) +','+ str(b) +') '+ 'HEX: '+
hexstr
print_no_newline(res)
time.sleep(1.0)
except KeyboardInterrupt:
print("\nDone...")
后来我甚至尝试剪辑hexstr以返回hex的前6个字符
res= ss + ' RGB: ('+ str(r) +','+ str(g) +','+ str(b) +') '+ 'HEX: '+
hexstr[:7]
但没用
样本输出
X:489 Y:622 RGB:(0,2130)十六进制:#000282eff
X:545 Y:710 RGB:(0,0,0)十六进制:#000000f1f1
它是否从上一个位置返回垃圾值?你知道吗
您总是覆盖控制台中的同一行。如果以前的输出有更多的字符,这些字符将保留。你知道吗
如果将“testing\rlook”写入控制台,则会导致“looking”,因为“ing”不会被覆盖。你知道吗
解决方案:在输出中添加足够的空间。你知道吗
相关问题 更多 >
编程相关推荐