Tengo una imagen en pantalla y quiero medir su ancho. Por supuesto que puedo usar una regla , pero eso es caprichoso y lento. ¿Hay algo en donde pueda hacer clic en una tecla de acceso directo, arrastrar un área y me dirá la altura y el ancho de esa área?
Algo similar a la regla de página para Google Chrome.
Actualmente, estoy usando Shift+ PrtScny arrastro el área, guardo la imagen y luego voy a Propiedades para averiguar su altura y ancho.
Cómo funciona
El siguiente script mide el tamaño de un área, entre dos ubicaciones del puntero del mouse.
Funciona de la siguiente manera:
Coloque el puntero del mouse en la primera posición (sin hacer clic)
Presione la combinación de teclas que prefiera (ver más abajo)
Coloque el mouse en la segunda posición (nuevamente sin hacer clic)
Presione su combinación de teclas nuevamente. Una notificación le indicará el tamaño exacto (px) del área.
Opciones
Puede elegir (descomentando una de las líneas) cómo le gustaría recibir una notificación; ya sea por una notificación:
O una ventana de información de Zenity:
(Los ejemplos son de diferentes áreas)
Cómo utilizar
El script usa
xdotool
:Copie el script a continuación en un archivo vacío, descomente cualquiera de las líneas:
(para ser notificado por la
notify-send
opción)o:
para la
Zenity
opciónGuarde el script en
~/bin
(probablemente tendrá que crear el directorio) comomeasure_area
(sin extensión) y hágalo ejecutable .Agregue una combinación de teclas de su elección para ejecutar el script: Elija: Configuración del sistema> "Teclado"> "Atajos"> "Atajos personalizados". Haga clic en "+" y agregue el comando:
Notas
La secuencia de comandos
Explicación
Cuando se llama al script por primera vez, obtiene la posición actual del mouse con el
xdotool
comando:Luego guarda la posición en un archivo (invisible)
.measure_area.txt
, esperando la segunda llamada.En la segunda llamada, lee el archivo, lo elimina y compara las
x/y
coordenadas almacenadas con las más recientes, y calcula el tamaño del área entre ellas.Editar
Se actualizó el script con una serie de mejoras:
subprocess.Popen()
/subprocess.check_output()
comandos (gracias a @muru, @Trengot)xdotool
instalado)fuente
Popen(['/bin/bash',...
lugar dePopen(['zenity', '--info', ...
?command = ['zenity', '--info', '--title', 'Area Size', '--text', str(w) + ' x ' + str(h)]; subprocess.Popen(command)
requiere mucho menos jugar'
y"
, creo.xdotools
? Algo comocheck_output(['xdotools', 'getmouseposition'])
?Usando slop
Otra forma sencilla de determinar el área de una selección es mediante
slop
(Operación selectiva ), una utilidad de línea de comandos "que consulta una selección del usuario e imprime la región en stdout".slop
es una herramienta relativamente nueva y todavía no se ha empaquetado para Debian / Ubuntu. Tal como está, tendrá que compilarlo desde la fuente:La instalación es la parte más difícil.
slop
en sí mismo es muy fácil trabajar con él. Por ejemplo, la siguiente línea le solicitará que seleccione un área de pantalla y mostrará el resultado como una notificación y lo escribirá en el portapapeles:Captura de pantalla:
Un desglose rápido de los comandos utilizados:
slop -t 0 -b 1
- solicitar al usuario que seleccione un área de pantalla; no seleccione ventanas completas (-t 0
), establezca el borde de selección en 1px (-b 1
)eval $(...)
- leer la salida deslop
en variablesnotify-send ...
- Enviar notificación GUI con información sobre el área seleccionadaecho ${W}x${H} | xsel -bi
- copiar dimensiones al portapapeles (requierexsel
→sudo apt-get install xsel
)fuente