เครื่องมือในการเลือกพิกเซลบนหน้าจอและรับสีและพิกัดแบบสัมบูรณ์


18

ฉันกำลังมองหาเครื่องมือที่ให้ฉันเลือกพิกเซลใด ๆ บนหน้าจอและรับสีของ RGB และตำแหน่งที่แน่นอน (x, y)

ฉันใช้เครื่องมือบน Windows ที่แสดงสี่เหลี่ยมจัตุรัสขนาดใหญ่ที่ขยายด้วย crosshair ทำให้ฉันเลือกพิกเซลที่ฉันต้องการและรับรายละเอียดได้อย่างง่ายดาย

มีอะไรเช่นนี้สำหรับอูบุนตูหรือไม่?


แค่อยากรู้ว่าทำไมคุณกำลังมองหาชุดค่าผสมนี้ด้วยกัน ... ที่อาจช่วยให้เราคิดคำตอบ ทำไมคุณต้องการทราบพิกัด x, y และสี
snowguy

ฉันกำลังเขียนเครื่องมืออัตโนมัติที่ส่งการป้อนข้อมูลแป้นพิมพ์และเมาส์เพื่อดูสิ่งต่าง ๆ บนหน้าจอ บางส่วนขึ้นอยู่กับการใช้ x, y ออฟเซ็ตของปุ่มบางปุ่ม ฯลฯ ภายในหน้าต่างและฉันต้องการวิธีง่ายๆในการค้นหาออฟเซ็ตเหล่านี้อย่างแน่นอน
แฟลช

หากนี่คือเว็บและคุณเป็น Firefox ก็จะมีนามสกุลที่เรียกว่า ColorZilla colorzilla.com/firefox
ไม่เปิดเผยตัวตน

แอนดรูว์เอียนบีเขียนเครื่องมือที่ทำในสิ่งที่คุณต้องการ ดูเหมือนว่าเขาสมควรได้รับความโปรดปราน
snowguy

คำตอบ:


4

แบบที่ดีที่สุดคือ ... เครื่องมือ Windows ตัวจิ๋วที่เรียกว่าColorPix (ผ่าน WINE)

หลังจากการค้นหานานและหนักก็ปรากฏไม่มีเครื่องมือที่สามารถใช้ได้สำหรับอูบุนตู / Linux ตอบสนองทั้งเกณฑ์ของคุณคือการขยายและประสานงานการแสดงผล

ดังนั้นเราจึงไปหาเครื่องมือ Windows ตัวเล็ก ๆ ที่มีความสำคัญอย่างยิ่งเพียงใช้งานได้กับการติดตั้ง WINE เริ่มต้นไม่มีการกำหนดค่าการติดตั้ง DLLs และอื่น ๆ ที่จำเป็น

  • มันมีซูมปรับ, คัดลอกด้วยคลิกเดียวในหลายรูปแบบและแสดงประสาน:

    ป้อนคำอธิบายรูปภาพที่นี่

1. ติดตั้งไวน์

sudo apt-get install wine

(แค่นั้นแหละ!)

2. ดาวน์โหลดColorPix

ColorPixสามารถดาวน์โหลดได้อย่างเป็นทางการในฐานะ exe ขนาดเล็กพกพาขนาด 600KB ที่นี่

ฉันขอแนะนำให้ดาวน์โหลดโดยตรงไปยังไดเรกทอรีไบนารีท้องถิ่นของคุณด้วย:

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 ผ่าน WINE
    Exec = wine /usr/local/bin/ColorPix.exe
    เทอร์มิ = false
    ไอคอน = / usr / share / ไอคอน / colorpix.png
    type = แอพลิเคชัน
    StartupNotify = true
    
  • จากเทอร์มินัลรัน:

    sudo chmod +x /usr/share/applications/colorpix.desktop
    
  • ในไม่กี่วินาทีมันจะมีให้ในตัวเรียกใช้งานเป็น:

    ป้อนคำอธิบายรูปภาพที่นี่

4. การใช้ ColorPix

เริ่มและในครั้งแรกอาจใช้เวลาสองสามวินาทีในขณะที่ WINE เริ่มต้น

ภาพหน้าจอด้านล่างแสดงว่ากำลังใช้งานด้วย:

  • พิกัดด้านบน
  • ค่าสีในรูปแบบต่าง ๆ ด้านล่าง (คลิกเพื่อคัดลอกไปที่คลิปบอร์ด)
  • แว่นขยายปรับด้านล่าง
  • กดปุ่มใด ๆ เมื่อคุณอยู่ในพิกเซลที่คุณต้องการเพื่อล็อคค่า

    ป้อนคำอธิบายรูปภาพที่นี่


เขียนได้ดีคำตอบที่น่าแปลกใจ - ขอบคุณ! แต่มันยากที่จะท้อง 625 MB สำหรับการดาวน์โหลดไวน์ดังนั้นฉันหวังว่า Ian B จะได้รับความช่วยเหลือเกี่ยวกับแอพหลามน้อยน่ารักของเขา ....
nealmcb

เพียงใช้xmagตามที่อธิบายไว้ด้านล่างและกดปุ่มเมาส์ค้างไว้บนพิกเซลที่คุณต้องการพิกัด
hackerb9

12

มีเครื่องมือที่เรียกว่าเป็นgpick

ที่นี่คุณสามารถเห็นภาพของเครื่องมือ ด้วย gpick คุณสามารถเลือกพิกเซลดูรหัส HTML เพิ่มสีในจานสีและสร้างสี

หากต้องการใช้งานให้คลิกขวาตรงกลางของรูปหกเหลี่ยมจากนั้นใช้ Space bar เพื่อบันทึกสีลงในจานสี

gpick


ขอบคุณนี่เกือบจะเป็นสิ่งที่ฉันต้องการ แต่ดูเหมือนจะไม่แสดงพิกัดพิกเซล
Flash

คุณสามารถทำเครื่องหมายคำถามนี้ว่าเสร็จสมบูรณ์หรือไม่
slashcrack

ไม่มี - ขณะที่ผมยังไม่ได้มีคำตอบ :)
แฟลช

gpick ดูดีมากเพียงทำการsudo apt-get install gpickติดตั้ง
Bloke

6

สิ่งนี้จะทำให้คุณได้ในสิ่งที่คุณต้องการฉันเชื่อ เป็นที่ยอมรับว่าเป็นเพียงไม่กี่ขั้นตอน แต่มันก็ดูแย่กว่านั้นเพราะฉันแสดงขั้นตอนเล็ก ๆ น้อย ๆ ในแต่ละครั้ง

ติดตั้ง

ติดตั้ง ImageMagick & Shutter

sudo apt-get install imagemagick shutter

วิธีรับพิกัด x, y และสี

A. เปิดชัตเตอร์แล้วคลิกปุ่มเลือก

รูปของการคลิกปุ่มเลือก

B. โปรดทราบว่าเมื่อคุณเลื่อนเมาส์ไปรอบ ๆ มันจะแสดงพิกัด x, y ที่คุณต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อคุณมีสถานที่ที่เหมาะสมไปข้างหน้าและคลิกด้วยปุ่มเมาส์ของคุณและวาดสี่เหลี่ยมเพื่อจับภาพ (ไม่สำคัญว่าภาพของคุณจะใหญ่เพียงใดตราบใดที่คุณเริ่ม (มุมบนซ้าย) ของพิกเซลที่น่าสนใจ)

ป้อนคำอธิบายรูปภาพที่นี่

C. ปิดภาพในชัตเตอร์

ป้อนคำอธิบายรูปภาพที่นี่

D. เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล นี่จะให้ค่าสีของพิกเซลด้านซ้ายบน

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

E. ในขณะที่อยู่ในบรรทัดคำสั่งให้ไปข้างหน้าและลบภาพเพื่อให้ชัตเตอร์ครั้งต่อไปถ่ายภาพมันให้ชื่อเดียวกัน (ไม่เช่นนั้นคุณจะต้องปรับชื่อในขั้นตอนก่อนหน้า (D)

rm ~/Pictures/Selection_001.png

ตัวแปลงเป็นตัวเลือกที่ดีที่สุด แต่ฉันต้องการไปที่rgba+ od: askubuntu.com/a/874503/52975
Ciro Santilli 新疆新疆中心中心法轮功六四事件

6

วางรหัสนี้ในโปรแกรมแก้ไขข้อความทำให้สามารถเรียกใช้และเรียกใช้ได้ เมื่อคุณเลือกสีด้วย eyedropper พิกัด x และ y จะปรากฏขึ้นที่ด้านบน

แก้ไข : เขียนรหัสเพื่อเพิ่มหน้าต่างซูม หากต้องการให้มันคว้าพิกเซลออกไปนอกหน้าต่างให้คลิกปุ่ม (ไม่ใช่ eyedropper) คลิกที่ปุ่มอีกครั้งเพื่อหยุดการจับตัวชี้ ยังไม่ได้คิดวิธีวาด crosshair ด้วย cairo แต่คุณอาจใช้มันได้ ฉันทิ้งรหัสไคโรไว้ที่นั่นในกรณีที่มีคนบอกฉันได้ว่าทำไมสี่เหลี่ยมผืนผ้าของฉันถึงไม่วาด ...

#!/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
คำตอบที่ดี ตรงไปตรงมามากขึ้น
snowguy

1
ทำให้มันใช้งานได้ - แต่ฉันไม่เห็นพิกเซลที่ฉันจะเลือกจนกว่าฉันจะคลิกมัน ฉันหวังว่าจะสามารถขยายพื้นที่รอบเคอร์เซอร์เพื่อให้แน่ใจว่าฉันได้รับพิกเซลที่ถูกต้อง
แฟลช

ลองตอนนี้ ... โครงการที่น่าสนใจและฉันได้เรียนรู้มากมาย หวังว่าบางคนอาจสามารถช่วยฉันค้นหาสาเหตุที่ฉันวาดในหน้าต่างซูมด้วยไคโรไม่ได้
เอียนบี

4

หากใครต้องการทำสิ่งนี้ในอนาคตคุณไม่จำเป็นต้องดาวน์โหลดอะไรเลย (แน่นอนว่าไม่ใช่ของ Windows หลายร้อยเมกะไบต์ตามคำแนะนำอื่น) วิธีง่ายๆ Ubuntu xmagมาพร้อมกับมี Xmag เป็นส่วนหนึ่งของแพ็คเกจ x11-apps ซึ่งควรจะติดตั้งโดยค่าเริ่มต้น

มันเป็นเรื่องง่าย. เรียกใช้xmagคลิกเพื่อเลือกพื้นที่ของหน้าจอจากนั้นกดปุ่มเมาส์ค้างไว้ในมุมมองขยายเพื่อดูพิกัดพิกเซลที่แน่นอน

สกรีนช็อตของ xmag ตัวชี้ sans

คุณสามารถอ่านคู่มือการ xmag man xmagโดยการพิมพ์


หากต้องการเปลี่ยนการขยายให้ใช้-magตัวเลือก (ค่าเริ่มต้นถึง 5) เช่นxmag -mag 10การเพิ่มขึ้นสิบครั้ง
ของหวาน

0

ลองimview มันจะแสดงพิกัด

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถดาวน์โหลดของหน้าหมอและหน้าคนที่นี่


ฉันไม่เห็นวิธีเลือกพิกเซลจากหน้าจอด้วยสิ่งนี้
Flash
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.