화면에 이미지가 있는데 너비를 측정하고 싶습니다. 물론 통치자를 사용할 수는 있지만 기발하고 느립니다. 바로 가기 키를 클릭하고 영역을 드래그하면 해당 영역의 높이와 너비를 알 수있는 것이 있습니까?
Chrome 용 Page Ruler 와 비슷한 기능 입니다.
현재 Shift+를 사용 PrtScn하고 영역을 드래그하여 이미지를 저장 한 다음 속성으로 이동하여 높이와 너비를 찾습니다.
화면에 이미지가 있는데 너비를 측정하고 싶습니다. 물론 통치자를 사용할 수는 있지만 기발하고 느립니다. 바로 가기 키를 클릭하고 영역을 드래그하면 해당 영역의 높이와 너비를 알 수있는 것이 있습니까?
Chrome 용 Page Ruler 와 비슷한 기능 입니다.
현재 Shift+를 사용 PrtScn하고 영역을 드래그하여 이미지를 저장 한 다음 속성으로 이동하여 높이와 너비를 찾습니다.
답변:
셔터 가 설치되어 있지 않은 경우 먼저 설치 하십시오.
sudo apt-get install shutter
편집-> 환경 설정에서 환경 설정을 열고 동작 탭을 선택하십시오.
'로그인시 셔터 시작'및 '첫 실행시 창 숨기기'를 확인하십시오. 아래 스크린 샷을 참조하십시오 :
아래 스크립트는 마우스 포인터의 두 위치 사이의 영역 크기를 측정합니다.
다음과 같이 작동합니다.
클릭하지 않고 마우스 포인터를 첫 번째 위치에 놓습니다.
원하는 키 조합을 누릅니다 (아래 추가 참조).
마우스를 두 번째 위치에 놓으십시오 (다시 클릭하지 않아도 됨)
키 조합을 다시 누르십시오. 알림은 해당 영역의 정확한 크기 (px)를 알려줍니다.
알림을 받고자하는 방식을 선택할 수 있습니다 (줄 중 하나의 주석 처리를 제거하여). 알림으로 :
또는 Zenity 정보 창 :
(예는 다른 영역에서 나왔습니다)
스크립트는 xdotool
다음을 사용합니다 .
sudo apt-get install xdotool
아래 스크립트를 빈 파일로 복사하고 다음 중 한 줄의 주석 처리를 제거하십시오.
command = ['notify-send', 'Area size', str(w)+' x '+str(h)]
( notify-send
옵션 으로 통지 )
또는:
command = ['zenity', '--info', '--title', 'Area Size', '--text', str(w) + ' x ' + str(h)]
에 대한 Zenity
옵션을 선택합니다.
스크립트를 ~/bin
( measure_area
확장자 없음 )으로 저장하고 (아마도 디렉토리를 만들어야 할 것임 ) 실행 가능하게 만드십시오 .
스크립트를 실행하기 위해 선택한 키 조합을 추가하십시오 : 시스템 설정> "키보드"> "바로 가기"> "사용자 정의 단축키"를 선택하십시오. "+"를 클릭하고 다음 명령을 추가하십시오.
measure_area
#!/usr/bin/env python3
import subprocess
import os
import math
home = os.environ["HOME"]
area = home+"/"+".measure_area.txt"
def get_pos():
pos_data = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8")
return [m[2:] for m in pos_data.split()[:2]]
def confirm():
get = subprocess.check_output(["xrandr", "--verbose"]).decode("utf-8").split()
for s in [get[i-1] for i in range(len(get)) if get[i] == "connected"]:
br_data = float(get[get.index("Brightness:")+1])
brightness = lambda br: ["xrandr", "--output", s, "--brightness", br]
flash = ["sleep", "0.1"]
for cmd in [brightness(str(br_data-0.1)), flash, brightness(str(br_data))]:
subprocess.call(cmd)
if not os.path.exists(area):
with open(area, "wt") as measure:
measure.write(str(get_pos()))
confirm()
else:
second = get_pos()
with open(area) as first_m:
try:
first = eval(first_m.read())
w = int(math.fabs(int(second[0]) - int(first[0])))
h = int(math.fabs(int(second[1]) - int(first[1])))
#--- uncomment either one of the lines below:
# command = ['notify-send', 'Area size', str(w)+' x '+str(h)]
command = ['zenity', '--info', '--title', 'Area Size', '--text', str(w) + ' x ' + str(h)]
#---
confirm()
except SyntaxError:
text = "Please try again, there was an error in the data"
command = ['zenity', '--info', '--title', 'Please try again', '--text', text]
subprocess.Popen(command)
os.remove(area)
스크립트를 처음 호출하면 다음 xdotool
명령을 사용하여 현재 마우스 위치를 가져옵니다 .
xdotool getmouselocation
그런 다음 위치를 (보이지 않는) 파일에 저장 .measure_area.txt
하고 두 번째 전화를 기다립니다.
두 번째 호출에서는 파일을 읽고 제거하고 저장된 x/y
좌표를 최신 좌표 와 비교 한 후 그 사이의 영역 크기를 계산합니다.
여러 가지 개선 사항으로 스크립트를 업데이트했습니다.
subprocess.Popen()
/ subprocess.check_output()
명령 (@muru, @Trengot 덕분에)xdotool
설치 하지 않고 스크립트를 처음 실행 한 경우)Popen(['/bin/bash',...
대신에 Popen(['zenity', '--info', ...
?
command = ['zenity', '--info', '--title', 'Area Size', '--text', str(w) + ' x ' + str(h)]; subprocess.Popen(command)
훨씬 적은 비용으로 장난 필요 '
하고 "
나는 생각한다.
xdotools
합니까? 같은 것 check_output(['xdotools', 'getmouseposition'])
?
슬로프 사용
선택 영역을 결정하는 또 다른 간단한 방법은 slop
"사용자로부터 선택을 쿼리하고 영역을 표준 출력으로 인쇄하는"명령 줄 유틸리티 인 (선택 작업)을 사용하는 것입니다.
slop
비교적 새로운 도구이며 데비안 / 우분투 용으로 아직 패키지되지 않았습니다. 서있는 것처럼 소스에서 컴파일해야합니다.
sudo apt-get install build-essential cmake libxext-dev
git clone https://github.com/naelstrof/slop.git
cd slop
cmake ./
make && sudo make install
설치는 가장 어려운 부분입니다. slop
실제로는 작업하기가 매우 쉽습니다. 예를 들어, 다음의 한 줄은 화면 영역을 선택하라는 메시지를 표시하고 결과를 알림으로 표시하고 클립 보드에 씁니다.
eval $(slop -t 0 -b 1) && notify-send "Selection info" "Area: ${W} x ${Y}px \n Position: X = ${X}px, Y = ${Y}px" && echo ${W}x${H} | xsel -bi
스크린 샷 :
사용 된 명령의 빠른 분류 :
slop -t 0 -b 1
-사용자에게 화면 영역을 선택하도록 요청하십시오. 전체 창 ( -t 0
)을 선택하지 말고 선택 테두리를 1px ( -b 1
)로 설정하십시오.eval $(...)
- slop
변수로 출력 읽기notify-send ...
-선택한 영역에 대한 정보와 함께 GUI 알림을 보냅니다.echo ${W}x${H} | xsel -bi
-치수를 클립 보드에 복사 ( xsel
→ 필요 sudo apt-get install xsel
)