本文目录导读:

我来为您介绍几种实现屏幕取色脚本的方法,从简单到复杂,您可以根据需求选择:
Python + Pillow(最简单)
from PIL import ImageGrab
import pyautogui
import time
def screen_pixel_color(x, y):
"""获取屏幕指定坐标的颜色"""
# 获取屏幕像素颜色
screenshot = ImageGrab.grab()
color = screenshot.getpixel((x, y))
return color
# 示例:获取鼠标位置的颜色
def get_mouse_color():
while True:
# 获取鼠标位置
x, y = pyautogui.position()
color = screen_pixel_color(x, y)
# 转换为十六进制
hex_color = '#{:02x}{:02x}{:02x}'.format(*color)
print(f"位置: ({x}, {y}) RGB: {color} Hex: {hex_color}")
time.sleep(0.1)
if __name__ == "__main__":
get_mouse_color()
Python + PyQt5(带界面)
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import QGuiApplication, QCursor
class ColorPicker(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("屏幕取色器")
self.setFixedSize(300, 150)
self.setWindowFlags(Qt.WindowStaysOnTopHint) # 窗口置顶
# 创建布局
layout = QVBoxLayout()
self.color_label = QLabel("RGB: (255, 255, 255)")
self.hex_label = QLabel("HEX: #FFFFFF")
self.pos_label = QLabel("位置: (0, 0)")
self.color_box = QLabel()
self.color_box.setFixedSize(100, 100)
self.color_box.setStyleSheet("background-color: white; border: 2px solid black;")
layout.addWidget(self.color_box)
layout.addWidget(self.pos_label)
layout.addWidget(self.color_label)
layout.addWidget(self.hex_label)
self.setLayout(layout)
# 定时更新
self.timer = QTimer()
self.timer.timeout.connect(self.update_color)
self.timer.start(50) # 每50ms更新一次
def update_color(self):
"""获取鼠标位置的颜色"""
# 获取全局鼠标位置
pos = QCursor.pos()
self.pos_label.setText(f"位置: ({pos.x()}, {pos.y()})")
# 获取像素颜色
screen = QGuiApplication.primaryScreen()
pixmap = screen.grabWindow(0, pos.x(), pos.y(), 1, 1)
image = pixmap.toImage()
color = image.pixelColor(0, 0)
r, g, b = color.red(), color.green(), color.blue()
# 更新显示
self.color_label.setText(f"RGB: ({r}, {g}, {b})")
self.hex_label.setText(f"HEX: #{r:02X}{g:02X}{b:02X}")
self.color_box.setStyleSheet(f"background-color: rgb({r}, {g}, {b}); border: 2px solid black;")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = ColorPicker()
window.show()
sys.exit(app.exec_())
Python 自动取色(点击复制)
import tkinter as tk
import pyautogui
import pyperclip
from PIL import ImageGrab
class AutoColorPicker:
def __init__(self):
self.root = tk.Tk()
self.root.title("自动取色器")
self.root.attributes('-topmost', True) # 置顶
self.root.geometry("250x100")
# 颜色显示
self.color_frame = tk.Frame(self.root, width=100, height=50, bg="#FFFFFF")
self.color_frame.pack(pady=5)
info_label = tk.Label(self.root, text="将鼠标移到目标颜色处,点击任意位置取色")
info_label.pack()
self.hotkey_label = tk.Label(self.root, text="按 Ctrl+C 复制颜色值")
self.hotkey_label.pack()
# 绑定快捷键
self.root.bind('<Control-c>', self.copy_color)
self.root.bind('<space>', self.capture_color)
self.current_color = None
def capture_color(self, event=None):
"""获取当前鼠标位置的颜色"""
x, y = pyautogui.position()
screenshot = ImageGrab.grab()
color = screenshot.getpixel((x, y))
hex_color = '#{:02x}{:02x}{:02x}'.format(*color)
self.current_color = hex_color
# 更新颜色显示
self.color_frame.config(bg=hex_color)
print(f"位置: ({x}, {y}) 颜色: {hex_color}")
def copy_color(self, event=None):
"""复制当前颜色"""
if self.current_color:
pyperclip.copy(self.current_color)
print(f"已复制: {self.current_color}")
def run(self):
self.root.mainloop()
if __name__ == "__main__":
app = AutoColorPicker()
app.run()
网页版(JavaScript)
<!DOCTYPE html>
<html>
<head>网页版取色器</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
display: flex;
gap: 20px;
}
#colorPicker {
cursor: crosshair;
border: 2px solid #ccc;
}
#colorDisplay {
width: 100px;
height: 100px;
border: 2px solid #333;
margin: 10px 0;
}
</style>
</head>
<body>
<div>
<canvas id="colorPicker" width="400" height="300"></canvas>
</div>
<div>
<h3>点击图片选择颜色</h3>
<div id="colorDisplay"></div>
<p>RGB: <span id="rgbValue">(255, 255, 255)</span></p>
<p>HEX: <span id="hexValue">#FFFFFF</span></p>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const canvas = document.getElementById('colorPicker');
const ctx = canvas.getContext('2d');
// 创建一个渐变色示例
const gradient = ctx.createLinearGradient(0, 0, canvas.width, canvas.height);
gradient.addColorStop(0, '#FF0000');
gradient.addColorStop(0.5, '#00FF00');
gradient.addColorStop(1, '#0000FF');
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, canvas.width, canvas.height);
// 添加点击事件
canvas.addEventListener('click', function(e) {
const rect = canvas.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;
const pixel = ctx.getImageData(x, y, 1, 1).data;
const hex = '#' + [pixel[0], pixel[1], pixel[2]]
.map(c => c.toString(16).padStart(2, '0'))
.join('');
document.getElementById('colorDisplay')
.style.backgroundColor = hex;
document.getElementById('rgbValue')
.textContent = `(${pixel[0]}, ${pixel[1]}, ${pixel[2]})`;
document.getElementById('hexValue')
.textContent = hex;
});
});
</script>
</body>
</html>
安装依赖
对于Python版本,需要安装:
pip install pillow pyautogui pyperclip # 或者使用 PyQt5 界面版 pip install PyQt5
使用建议
- 简单场景:使用Pillow版本,代码最简洁
- 需要界面:使用PyQt5版本
- 快捷操作:使用tkinter版本,支持快捷键
- 网页项目:使用JavaScript版本
这些脚本可以帮助您实现:
- 获取鼠标位置的颜色
- 自动复制颜色值
- 显示RGB和HEX格式
- 支持快捷键操作
根据您的具体需求选择合适的版本即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播