2017-08-17 4 views
0

L'option BBOX de la fonction grab() de PyScreenShot est capable de collecter une zone de l'écran qui est excellente.Utiliser l'option BBOX en pourcentage au lieu d'un pixel absolu - PyScreenShot Python

Est-il possible de faire la même chose mais en utilisant des pourcentages absolus? Le problème en utilisant des valeurs de pixels est que sur différents moniteurs avec une résolution différente, l'image saisie sera différente.

Ainsi, au lieu de dire

im = ImageGrab.grab(bbox=(100,100,500,500)) 

je peux obtenir toujours la même zone, indépendamment si l'écran est 1920x1080 ou toute autre résolution

Répondre

0

Est-il quelque chose comme ça vous cherchez?

import mss 
# import mss.tools 


with mss.mss() as sct: 
    monitor = sct.monitors[1] 
    left = monitor['left'] + monitor['width'] * 5 // 100 # 5% from the left 
    top = monitor['top'] + monitor['height'] * 5 // 100 # 5% from the top 
    right = left + 400 # 400px width 
    lower = top + 400 # 400px height 
    box = (left, top, right, lower) 
    im = sct.grab(box) 
    # mss.tools.to_png(im.rgb, im.size, 'screenshot.png') 
+0

Merci beaucoup pour la solution! Oui, j'essaie de capturer seulement une zone spécifique de l'écran, indépendamment de la résolution. –