最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實(shí)現(xiàn)屏幕取色工具

 更新時間:2024年12月30日 09:08:00   作者:hvinsion  
屏幕取色小工具?是一種實(shí)用的軟件工具,主要用于從屏幕上精確獲取顏色值,非常適合設(shè)計(jì)、編程等需要精確配色的領(lǐng)域,下面我們看看如何利用Python編寫一個屏幕取色工具吧

1.簡介

屏幕取色小工具‌是一種實(shí)用的軟件工具,主要用于從屏幕上精確獲取顏色值,非常適合設(shè)計(jì)、編程等需要精確配色的領(lǐng)域。這類工具通常能夠從屏幕上任何區(qū)域精確提取顏色值,支持在整數(shù)值、RGB值、BGR值之間轉(zhuǎn)換‌。資源已打包成exe文件,大家需要可自行下載,喜歡請點(diǎn)個關(guān)注,主頁還有更多干貨資源!

2.運(yùn)行效果

3.相關(guān)源碼

from ctypes import windll
import cv2
from numpy import array as arr
from win32api import GetCursorPos, SetCursorPos
import wx
from PIL import ImageGrab
 
 
class colorData:
    def __init__(self, pos=None, color=None, rgb=None):
        self.pos = pos
        self.color = color
        self.rgb = rgb
 
 
class ColorFrame(wx.Dialog):
    def __init__(self):
        windll.user32.SetProcessDPIAware()
        super().__init__(None, title='Desktop Color', size=(200, 300))
        self.panel = wx.Panel(self)
        self.zb = wx.StaticText(self.panel, label='坐標(biāo):(0, 0, 0)', style=wx.ALIGN_CENTER)
        self.ys = wx.StaticText(self.panel, label='顏色:(0, 0, 0)', style=wx.ALIGN_CENTER)
        self.RGB = wx.StaticText(self.panel, label='RGB:(0, 0, 0)', style=wx.ALIGN_CENTER)
        self.bitmap = wx.StaticBitmap(self.panel, size=(200, 200))
        self.data = colorData()
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.zb, proportion=1, flag=wx.EXPAND)
        sizer.Add(self.ys, proportion=1, flag=wx.EXPAND)
        sizer.Add(self.RGB, proportion=1, flag=wx.EXPAND)
        sizer.Add(self.bitmap, proportion=1, flag=wx.EXPAND | wx.ALL)
        self.panel.SetSizer(sizer)
        self.Bind(wx.EVT_CLOSE, self.on_close)
        self.Bind(wx.EVT_CHAR_HOOK, self.on_key_press)
        # 創(chuàng)建一個定時器來定期獲取桌面顏色并更新標(biāo)簽
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.on_timer, self.timer)
        self.timer.Start(1)  # 每隔1秒觸發(fā)一次定時器
 
    def on_timer(self, event):
        point = GetCursorPos()
        screenshot = ImageGrab.grab()
        color = screenshot.getpixel(point)
        img = arr(ImageGrab.grab((point[0] - 10, point[1] - 10, point[0] + 10, point[1] + 10)))
        img = cv2.resize(img, None, None, fx=10, fy=10, interpolation=cv2.INTER_AREA)
        cv2.rectangle(img, (100, 100), (110, 110), (255, 0, 0), 1)
        self.update_label(point, color, img)
 
    def update_label(self, point, color, img):
        self.zb.SetLabel(f'坐標(biāo):({point[0]}, {point[1]})')
        self.ys.SetLabel(f'顏色:({color[0]}, {color[1]}, {color[2]})')
        self.RGB.SetLabel(f'RGB:({color[0]:02X}{color[1]:02X}{color[2]:02X})')
        height, width, _ = img.shape
        self.maps = wx.Bitmap.FromBuffer(width, height, img)  # 將Opencv圖像轉(zhuǎn)換為wxPython圖像對象
        self.bitmap.SetBitmap(self.maps)
 
    def on_close(self, event):
        self.timer.Stop()
        self.Destroy()
 
    def on_key_press(self, event):
        keycode = event.GetKeyCode()
        point = GetCursorPos()
        if keycode == wx.WXK_RETURN or keycode == wx.WXK_NUMPAD_ENTER:
            screenshot = ImageGrab.grab()
            color = screenshot.getpixel(point)
            self.data.pos = point
            self.data.color = color
            self.data.rgb = f'{color[0]:02X}{color[1]:02X}{color[2]:02X}'
            self.on_close(event)
            # self.EndModal(wx.ID_OK)
        elif keycode == wx.WXK_LEFT:
            SetCursorPos((point[0] - 1, point[1]))
        elif keycode == wx.WXK_RIGHT:
            SetCursorPos((point[0] + 1, point[1]))
        elif keycode == wx.WXK_UP:
            SetCursorPos((point[0], point[1] - 1))
        elif keycode == wx.WXK_DOWN:
            SetCursorPos((point[0], point[1] + 1))
 
    def get_data(self):
        return self.data
 
 
app = wx.App()
frame = ColorFrame()
frame.Show()
app.MainLoop()
print(frame.data.pos, frame.data.color, frame.data.rgb)

到此這篇關(guān)于基于Python實(shí)現(xiàn)屏幕取色工具的文章就介紹到這了,更多相關(guān)Python屏幕取色內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中協(xié)程間通信的方式小結(jié)

    Python中協(xié)程間通信的方式小結(jié)

    Python中協(xié)程間的通信方式包括asyncio.Queue、asyncio.Event、asyncio.Condition、asyncio.Semaphore、asyncio.Streams和asyncio.Future,感興趣的可以了解一下
    2025-01-01
  • Python中瀏覽器有頭和無頭操作的實(shí)戰(zhàn)指南

    Python中瀏覽器有頭和無頭操作的實(shí)戰(zhàn)指南

    有頭模式就是我們在日常使用瀏覽器時最常見的形式,無頭模式是指瀏覽器在沒有圖形用戶界面(GUI)的環(huán)境下運(yùn)行,下面小編就和大家詳細(xì)介紹一下二者的區(qū)別并給出Python示例代碼,感興趣的小伙伴可以了解下
    2026-03-03
  • 推薦Python小白理想的IDE編輯器thonny

    推薦Python小白理想的IDE編輯器thonny

    這篇文章主要為大家介紹了推薦一款Python編輯器thonny,非常適合Python使用,具體原因文中給出詳細(xì)說明,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Django model重寫save方法及update踩坑詳解

    Django model重寫save方法及update踩坑詳解

    這篇文章主要介紹了Django model重寫save方法及update踩坑詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 基于Python實(shí)現(xiàn)自動化文件管理(分類、重命名和備份)

    基于Python實(shí)現(xiàn)自動化文件管理(分類、重命名和備份)

    在數(shù)字化時代,我們每天都會創(chuàng)建和處理大量的文件,自動化文件管理通過編程方式處理這些繁瑣任務(wù),可以為我們帶來顯著的效率提升,下面我們就來看看如何使用Python進(jìn)行文件分類,重命名和備份吧
    2025-10-10
  • 使用Python進(jìn)行GRPC和Dubbo協(xié)議的高級測試

    使用Python進(jìn)行GRPC和Dubbo協(xié)議的高級測試

    GRPC(Google Remote Procedure Call)是一種高性能、開源的遠(yuǎn)程過程調(diào)用(RPC)框架,Dubbo是一種高性能的分布式服務(wù)框架,常用于構(gòu)建大規(guī)模的微服務(wù)架構(gòu),本文我們就來看看如何使用Python對二者進(jìn)行測試吧
    2025-06-06
  • OpenCV半小時掌握基本操作之角點(diǎn)檢測

    OpenCV半小時掌握基本操作之角點(diǎn)檢測

    這篇文章主要介紹了OpenCV基本操作之角點(diǎn)檢測,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Python特殊屬性property原理及使用方法解析

    Python特殊屬性property原理及使用方法解析

    這篇文章主要介紹了Python特殊屬性property原理及使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解

    PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解

    這篇文章主要介紹了PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python監(jiān)控網(wǎng)卡流量并使用graphite繪圖的示例

    python監(jiān)控網(wǎng)卡流量并使用graphite繪圖的示例

    這篇文章主要介紹了python監(jiān)控網(wǎng)卡流量并使用graphite繪圖的示例,需要的朋友可以參考下
    2014-04-04

最新評論

桦川县| 阿图什市| 宝鸡市| 嘉荫县| 射阳县| 和静县| 丹凤县| 丹东市| 星子县| 高唐县| 屯门区| 诸暨市| 临海市| 盐亭县| 房产| 梧州市| 怀来县| 大冶市| 平利县| 托克托县| 长兴县| 武邑县| 肥东县| 杭锦后旗| 安徽省| 栾城县| 丹寨县| 南阳市| 桂林市| 聂荣县| 竹北市| 思南县| 萝北县| 霍邱县| 泾川县| 邵阳市| 儋州市| 阿克苏市| 富锦市| 疏附县| 炉霍县|