आसानी से स्क्रीन पर पिक्सेल का चयन करने और रंग और पूर्ण निर्देशांक प्राप्त करने के लिए उपकरण


18

मैं एक ऐसे टूल की तलाश में हूं, जो मुझे स्क्रीन पर किसी भी पिक्सेल का चयन करने और उसका RGB रंग और निरपेक्ष (x, y) स्थान प्राप्त करने में मदद करे।

मैंने विंडोज पर ऐसे टूल का इस्तेमाल किया है जो एक क्रॉसहेयर के साथ एक बड़ा आवर्धित वर्ग दिखाते हैं जो मुझे आसानी से उस पिक्सेल का चयन करने देता है जो मुझे चाहिए और इसका विवरण प्राप्त करें।

Ubuntu के लिए ऐसा कुछ है?


बस जिज्ञासु क्यों आप एक साथ इस विशेष संयोजन की तलाश कर रहे हैं ... जो हमें उत्तर के बारे में सोचने में मदद कर सकता है। आप x, y निर्देशांक और रंग क्यों जानना चाहते हैं?
बर्फीली

मैं एक स्वचालन उपकरण लिख रहा हूं जो स्क्रीन पर कुछ चीजों को देखने के जवाब में कीबोर्ड और माउस इनपुट भेजता है। कुछ भाग एक विंडो के अंदर कुछ बटन आदि के x, y ऑफ़सेट का उपयोग करने पर निर्भर करते हैं, और मैं इन ऑफ़सेट्स को खोजने का एक आसान तरीका चाहूँगा।
फ्लैश

यदि यह वेब के लिए है और आप फ़ायरफ़ॉक्स हैं तो ColorZilla नामक एक एक्सटेंशन है। colorzilla.com/firefox
बेनामी

एंड्रयू, ऐसा लगता है कि इयान बी ने एक उपकरण लिखा है जो आपको बस वही चाहिए जो आप चाहते हैं। लगता है जैसे वह इनाम का हकदार है।
बर्फीली

जवाबों:


4

सबसे अच्छा फिट है ... एक छोटा विंडोज टूल जिसका नाम ColorPix (WINE के माध्यम से) है

लंबे और कठिन खोज के बाद, यह प्रतीत होता है कि उबंटू / लिनक्स के लिए उपलब्ध कोई भी उपकरण आपके मापदंड, यानी आवर्धन और समन्वय प्रदर्शन दोनों को पूरा नहीं करता है ।

तो हम एक छोटे विंडोज टूल के लिए जाते हैं जो - गंभीर रूप से - बस एक डिफ़ॉल्ट WINE इंस्टॉल, कोई कॉन्फ़िगरेशन, इंस्टॉलेशन, DLL, आदि के साथ काम करता है।

  • इसमें समायोज्य ज़ूम, कई स्वरूपों में एक-क्लिक की प्रतिलिपि और प्रदर्शन समन्वय शामिल हैं:

    यहाँ छवि विवरण दर्ज करें

1. शराब स्थापित करें

sudo apt-get install wine

(बस!)

2. ColorPix डाउनलोड करें

ColorPix को आधिकारिक तौर पर एक छोटे, पोर्टेबल 600KB exe के रूप में डाउनलोड किया जा सकता है

मेरा सुझाव है कि आप अपनी स्थानीय बायनेरिज़ डायरेक्ट्री को सीधे डाउनलोड करें:

sudo wget -O/usr/local/bin/ColorPix.exe http://www.colorschemer.com/ColorPix.exe

3. ColorPix के लिए एक लांचर बनाएँ

  • आइए पहले एक आइकन प्राप्त करें:

    sudo wget -O/usr/share/icons/colorpix.png http://cdn.alternativeto.net/i/22e49edc-efa7-e011-979d-0025902c7e73_11865.png
    
  • Alt+F2अब दबाएँ और टाइप करें gksudo gedit /usr/share/applications/colorpix.desktop, और नीचे पेस्ट करें और फाइल को सेव करें:

    [डेस्कटॉप एंट्री]
    नाम = ColorPix
    GenericName = ColorPix
    टिप्पणी = वाइन के माध्यम से ColorPicker
    Exec = वाइन /usr/local/bin/ColorPix.exe
    टर्मिनल = false
    चिह्न = / usr / share / माउस / colorpix.png
    प्रकार = आवेदन
    StartupNotify सच =
    
  • एक टर्मिनल से, भागो:

    sudo chmod +x /usr/share/applications/colorpix.desktop
    
  • कुछ ही सेकंड में, यह लांचर में उपलब्ध होगा:

    यहाँ छवि विवरण दर्ज करें

4. ColorPix का उपयोग करना

इसे प्रारंभ करें, और WINE आरंभीकरण करते समय पहली बार कुछ सेकंड लग सकते हैं।

नीचे दिया गया स्क्रीनशॉट इसे कार्रवाई में दिखाता है:

  • शीर्ष पर निर्देशांक
  • नीचे विभिन्न स्वरूपों में रंग मान (क्लिपबोर्ड पर कॉपी करने के लिए क्लिक करें)
  • नीचे समायोज्य ताल
  • मूल्यों को लॉक करने के लिए अपने इच्छित पिक्सेल पर एक बार किसी भी कुंजी को दबाएं

    यहाँ छवि विवरण दर्ज करें


अच्छी तरह से लिखा, आश्चर्यजनक जवाब - धन्यवाद! लेकिन शराब के लिए 625 एमबी डाउनलोड करना मुश्किल है, इसलिए मैं उम्मीद कर रहा हूं कि इयान बी को अपने प्यारे छोटे अजगर ऐप के साथ कुछ मदद मिलेगी ....
nealmcb

बस xmagनीचे वर्णित के रूप में उपयोग करें, और पिक्सेल पर माउस बटन दबाए रखें जिसे आप निर्देशांक चाहते हैं।
hackerb9

12

एक उपकरण है जिसे gpick कहा जाता है ।

यहां आप टूल की एक छवि देख सकते हैं। Gpick से आप पिक्सेल का चयन कर सकते हैं, HTML कोड देख सकते हैं, पैलेट में रंग जोड़ सकते हैं और रंग उत्पन्न कर सकते हैं।

इसका उपयोग करने के लिए, हेक्सागोन के बीच में राइट क्लिक करें और फिर पैलेट में रंगों को बचाने के लिए स्पेस बार का उपयोग करें।

gpick


धन्यवाद यह लगभग वही करता है जो मैं चाहता हूं लेकिन पिक्सेल निर्देशांक नहीं दिखाता है।
फ्लैश

क्या आप इस प्रश्न को भी पूरा कर सकते हैं?
स्लैकक्रैक

नहीं - जैसा कि मेरे पास अभी भी जवाब नहीं है :)
फ्लैश

gpick बहुत अच्छा लग रहा है, बस sudo apt-get install gpickइसे स्थापित करने के लिए क्या करें
Bloke

6

यह आपको वही मिलेगा जो आप चाहते हैं कि मुझे विश्वास है। निश्चित रूप से यह कुछ कदम है लेकिन यह तब से भी बदतर है जब से मैंने प्रत्येक छोटा कदम दिखाया।

सेट अप

ImageMagick & शटर स्थापित करें।

sudo apt-get install imagemagick shutter

एक्स, वाई निर्देशांक और रंग कैसे प्राप्त करें

A. शटर खोलें और चयन बटन पर क्लिक करें

चयन बटन पर क्लिक करने का चित्र

बी ध्यान दें कि जैसे ही आप अपने माउस को इधर-उधर घुमाएंगे, वह आपको x, y निर्देशांक दिखाएगा, जिसकी आपको तलाश है।

यहाँ छवि विवरण दर्ज करें

जब आपको सही जगह मिल जाती है तो आगे बढ़ें और अपने माउस बटन के साथ क्लिक करें और किसी चित्र को पकड़ने के लिए एक वर्ग बनाएं। (यह वास्तव में कोई फर्क नहीं पड़ता कि आपकी छवि कितनी बड़ी है जब तक आप इसे शुरू करते हैं (शीर्ष बाएं कोने) ब्याज की पिक्सेल पर)।

यहाँ छवि विवरण दर्ज करें

C. शटर में छवि बंद करें

यहाँ छवि विवरण दर्ज करें

D. टर्मिनल से निम्न कमांड चलाएँ। यह आपको शीर्ष बाएँ पिक्सेल के रंग मान देगा।

convert ~/Pictures/Selection_001.png -crop 1x1+1+1 txt:- | sed -n 's/.* \(#.*\)/\1/p' 

ई। जबकि कमांड लाइन में आगे बढ़ते हैं और छवि को हटाते हैं ताकि अगली बार शटर एक तस्वीर लेता है यह इसे एक ही नाम देता है। (अन्यथा आपको पिछले चरण (D) में नाम समायोजित करने की आवश्यकता होगी।

rm ~/Pictures/Selection_001.png

कन्वर्ट स्पष्ट रूप से सबसे अच्छा विकल्प है, लेकिन मैं इसके बजाय rgba+ od: askubuntu.com/a/874503/52975 पर
जाऊंगा

6

इस कोड को टेक्स्ट एडिटर में पेस्ट करें, इसे निष्पादन योग्य बनाएं और इसे चलाएं। जब आप आईड्रॉपर के साथ एक रंग चुनते हैं, तो शीर्ष पर x और y निर्देशांक दिखाई देंगे।

संपादित करें : ज़ूम विंडो जोड़ने के लिए कोड लिखा। यह खिड़की के बाहर हड़पने पिक्सल है बटन (आईड्रॉपर नहीं) पर क्लिक करें। पॉइंटर को हथियाने से रोकने के लिए फिर से बटन पर क्लिक करें। यह पता नहीं लगाया गया है कि कैरो के साथ एक क्रॉसहेयर कैसे आकर्षित किया जा सकता है, लेकिन आप शायद इस रूप में उपयोग कर सकते हैं। अगर कोई मुझे बता सकता है कि मेरी आयत क्यों नहीं निकलती है तो मैंने कुछ कैरो कोड छोड़ दिया ...

#!/usr/bin/python
from gi.repository import Gtk,Gdk, GdkPixbuf
import cairo

class picker(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        self.connect('delete-event', Gtk.main_quit)
        self.connect('motion-notify-event', self.motion_cb)
        self.connect('button-press-event',self.button_press)
        box=Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)

        #Setup area for coordinates and zoom window
        coordbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.xcoor=Gtk.Label("x: ")
        coordbox.pack_start(self.xcoor, True, False, 1)
        self.ycoor=Gtk.Label("y: ")
        coordbox.pack_start(self.ycoor, True, False, 1)
        self.zoomwin=Gtk.Image()
        #Trying to draw on Gtk.Image with cairo for crosshairs... Not working
        self.zoomwin.connect('draw', self.draw) 
        self.zoomwin.set_app_paintable(True)
        coordbox.pack_start(self.zoomwin,True,True,1)
        self.buttongo=Gtk.Button("Pick Color")
        self.buttongo.connect('clicked',self.gobutton_activate)
        coordbox.pack_start(self.buttongo,True,True,1)
        box.pack_start(coordbox, True, False, 5)

        #Put in color wheel for tweaking color
        self.cp=Gtk.ColorSelection()
        self.cp.connect('color-changed', self.on_color_changed)
        box.pack_start(self.cp, True, True, 5)
        self.add(box)
        self.show_all()

        #Set some initial parameters
        self.w,self.h=10,10 #Size of zoomed image in pixels
        self.count=0
        self.window=self.get_window()
        #set initial zoom image
        self.zoomwin.set_from_pixbuf(self.get_image().scale_simple(240,240,GdkPixbuf.InterpType.TILES))
        self.grabbing=False

    def on_color_changed(self,widget=None, data=None):
        #Print out x,y to widgets
        display=Gdk.Display.get_default()
        (screen,x,y,modifier)=display.get_pointer()
        self.xcoor.set_text("x: %i" %x)
        self.ycoor.set_text("y: %i" %y)


    def get_image(self,w=None,h=None):
        #Get a pixbuff image under pointer
        if w==None: w=self.w
        if h==None: h=self.h
        display=Gdk.Display.get_default()
        (screen,self.x,self.y,modifier)=display.get_pointer()
        window=Gdk.get_default_root_window()
        screenshot = Gdk.pixbuf_get_from_window(window,
            self.x-int(w/2), self.y-int(h/2), int(w), int(h))
        return screenshot

    def motion_cb(self, widget, data):
        #What to do while mouse pointer is moving
        #DONT capture every event! Causes too much backup
        if self.count==5:
            self.pixbuf=self.get_image().scale_simple(240,240,GdkPixbuf.InterpType.TILES)
            self.zoomwin.set_from_pixbuf(self.pixbuf)
            self.zoomwin.queue_draw()
            self.count=0
        self.count+=1

    def grab_start(self):
        #Grab control of pointer outside of window
        self.grabbing = True
        Gdk.pointer_grab(self.window, 
                        True, #allow passage of pointer events to children
                        Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK,
                        None,
                        None,# could put a custom cursor here
                        0L)

    def button_press(self,widget,data):
        #capture color under the pointer and set the color selection
        cenpx=self.get_image(1,1)
        color=tuple(map(ord, cenpx.get_pixels()[:3]))
        col=Gdk.RGBA(float(color[0])/256.,float(color[1])/256.,float(color[2])/256.)
        self.cp.set_current_rgba(col)

    def grab_stop(self):
        #Stop Grabbing the pointer
        Gdk.pointer_ungrab(0)
        self.grabbing=False     

    def gobutton_activate(self, widget, data=None):
        #Button control
        if self.grabbing==False:
            self.grab_start()
            widget.set_label("Stop Picking")
        else:
            self.grab_stop()
            widget.set_label("Pick Color")

    def draw(self, widget, cr):
        #this gets called, but nothing is drawn that I can see...
        cr.set_operator(cairo.OPERATOR_SOURCE)
        cr.set_source_rgba(1,1,1,1)
        w = self.w
        h = self.h
        cr.set_source_rgba(1,1,1,1)
        cr.set_line_width(10)
        cr.rectangle(w/2-1,h/2-1,w/2+1,h/2+1)
        cr.stroke()
        cr.set_operator(cairo.OPERATOR_OVER)


if __name__=="__main__":
    win=picker()
    Gtk.main()

1
अच्छा उत्तर। बहुत अधिक सीधा।
स्नूगू जूल

1
यह काम कर रहा है - लेकिन जब तक मैं इसे क्लिक नहीं करूंगा, तब तक मैं उस पिक्सेल को नहीं देख पाऊंगा जिसका मैं चयन करने वाला हूं। मैं कर्सर के आसपास के क्षेत्र को बड़ा करने में सक्षम होने की उम्मीद कर रहा था ताकि मैं यह सुनिश्चित कर सकूं कि मुझे सही पिक्सेल मिलें।
फ्लैश

अब इसे आज़माएं ... दिलचस्प परियोजना और मैंने बहुत कुछ सीखा। आशा है कि कोई मुझे यह पता लगाने में मदद कर सकता है कि मैं कायरो के साथ ज़ूम विंडो पर क्यों नहीं खींच सकता।
इयान बी।

4

यदि कोई भविष्य में ऐसा करना चाहता है, तो आपको कुछ भी डाउनलोड करने की आवश्यकता नहीं है (निश्चित रूप से एक और सुझाव के रूप में सैकड़ों मेगाबाइट विंडोज सामान नहीं है)। एक सरल समाधान उबंटू के साथ आता है xmag। Xmag x11-apps पैकेज का हिस्सा है जिसे पहले से ही डिफ़ॉल्ट रूप से स्थापित किया जाना चाहिए।

यह आसान है। भागो xmag, स्क्रीन के एक क्षेत्र को चुनने के लिए क्लिक करें, फिर सटीक पिक्सेल निर्देशांक देखने के लिए आवर्धित दृश्य में माउस बटन दबाए रखें।

Xmag, sans पॉइंटर का स्क्रीनशॉट

आप टाइप करके xmag मैनुअल पढ़ सकते हैं man xmag


आवर्धन को बदलने के लिए -magविकल्प का उपयोग करें (5 से डिफॉल्ट), उदाहरण के xmag -mag 10लिए इसे दस बार ऊपर उड़ाने के लिए।
मिठाई

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.