Python Снимок экрана, только фон рабочего стола (MacBook Catalina) - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь сделать снимок экрана окна GUI, созданного tkinter, но когда я делаю снимок экрана, я получаю только рабочий стол, а не окно Python.

Я прочитал, что с новой ОС Catalina вы должны предоставить разрешения терминала, что я сделал, но все еще не могу захватить окно python. Даже если я сделаю полноэкранный снимок, я все равно не смогу увидеть окно Python.

https://github.com/BoboTiG/python-mss/issues/134

Я пробовал несколько разных способов, но все равно не могу получить для захвата окна Python.

Есть ли у кого-нибудь еще эти проблемы с Catalina O / S?

from PIL import Image, ImageTk
from tkinter import Tk, BOTH, Canvas, BOTH, NW, W
from tkinter.ttk import Frame, Label, Style
import pyscreenshot
import io
import os
import subprocess
import sys
import mss

top_border_height = 50
bottom_border_height = 70
screen_width = 800
screen_height = 480

video_icon_640x480_x = (800-640)/2
video_icon_640x480_y = (480-480)/2
homeicon64x64_x = 8
homeicon64x64_y = 8

root = Tk('test Screen')
root.geometry("800x480")
w = Canvas(root, width=screen_width, height=screen_height)

back_ground = ImageTk.PhotoImage(Image.open("./icon/wireframe_mode_background.png"))    
w.create_image(0, 0, image=back_ground, anchor='nw')
w.video_icon_640x480 = ImageTk.PhotoImage(Image.open("./icon/wireframe_640x480.png"))
w.create_image(video_icon_640x480_x, video_icon_640x480_y, image=w.video_icon_640x480, anchor="nw")
w.home_icon_640x480 = ImageTk.PhotoImage(Image.open("./icon/wireframe_64x64.png"))
w.create_image(homeicon64x64_x,homeicon64x64_y,image=w.home_icon_640x480, anchor="nw")
w.video_icon_640x480_1 = ImageTk.PhotoImage(Image.open("./icon/wireframe_64x64.png"))
w.create_image(728,8,image=w.video_icon_640x480_1, anchor="nw")
w.video_icon_640x480_2 = ImageTk.PhotoImage(Image.open("./icon/wireframe_64x64.png"))
w.create_image(728,80,image=w.video_icon_640x480_2, anchor="nw")

w.pack()
root.mainloop()

im = pyscreenshot.grab(bbox=(10, 10, 510, 510))  # X1,Y1,X2,Y2
im.save('screenshot.png')

with mss.mss() as sct:
   filename = sct.shot(mon=-1, output='fullscreen.png')
   print(filename)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...