Created
May 3, 2025 20:51
-
-
Save me-suzy/6915b699152606f0d1a726ce60b97612 to your computer and use it in GitHub Desktop.
Print Screen Manual A+A+S+Enter+q.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pyautogui | |
import time | |
import keyboard | |
from PIL import ImageGrab, Image | |
import os | |
import numpy as np | |
# Directorul de ieșire specificat | |
output_dir = r"d:\3\1111\exe\1" | |
if not os.path.exists(output_dir): | |
os.makedirs(output_dir) | |
# Contor pentru paginile capturate | |
page_counter = 1 | |
# Definirea zonei de captură | |
print("Vei defini zona de captură. Urmează instrucțiunile:") | |
print("1. Poziționează mouse-ul în colțul STÂNGA-SUS al zonei și apasă 'a'") | |
while not keyboard.is_pressed('a'): | |
time.sleep(0.1) | |
left, top = pyautogui.position() | |
print(f"Colțul stânga-sus: ({left}, {top})") | |
time.sleep(0.5) # Mică pauză | |
print("2. Acum, poziționează mouse-ul în colțul DREAPTA-JOS al zonei și apasă 'a'") | |
while not keyboard.is_pressed('a'): | |
time.sleep(0.1) | |
right, bottom = pyautogui.position() | |
print(f"Colțul dreapta-jos: ({right}, {bottom})") | |
# Verificăm dacă coordonatele sunt valide | |
if left >= right or top >= bottom: | |
print("EROARE: Coordonatele nu sunt valide. Colțul stânga-sus trebuie să fie mai în stânga și mai sus decât colțul dreapta-jos.") | |
print(f"Coordonate actuale: ({left}, {top}) -> ({right}, {bottom})") | |
exit() | |
print(f"Zona de captură: ({left}, {top}) -> ({right}, {bottom}), dimensiuni: {right-left}x{bottom-top} pixeli") | |
# Pregătire pentru a începe captura | |
print("Poziționează-te pe prima pagină pe care vrei să o capturezi.") | |
print("Apasă 's' pentru a începe captura sau 'q' pentru a ieși.") ### Tasta "S" StART iar tasta "Q" Quit. | |
print("După apăsarea 's', prima pagină va fi capturată automat.") | |
while True: | |
if keyboard.is_pressed('s'): | |
break | |
if keyboard.is_pressed('q'): | |
print("Ieșire") | |
exit() | |
time.sleep(0.1) | |
# Captură automată a primei pagini imediat după apăsarea 'S' | |
try: | |
# Mică pauză pentru a evita detectarea apăsării tastei 's' în captură | |
time.sleep(0.5) | |
# Capturează prima pagină | |
img = ImageGrab.grab(bbox=(left, top, right, bottom)) | |
# Salvează imaginea | |
img_path = os.path.join(output_dir, f"pagina_{page_counter:04d}.png") | |
img.save(img_path) | |
print(f"Prima pagină salvată automat: {img_path}") | |
# Incrementează contorul de pagini | |
page_counter += 1 | |
except Exception as e: | |
print(f"Eroare la capturarea primei pagini: {e}") | |
print("Continuă captura manuală. Apasă tasta 'Enter' pentru a captura paginile următoare.") | |
print("Apasă 'q' oricând pentru a opri.") | |
# Bucla principală de captură pentru paginile următoare | |
last_capture_time = time.time() | |
while True: | |
# Verifică dacă utilizatorul dorește să iasă | |
if keyboard.is_pressed('q'): | |
print("Captura oprită manual la pagina", page_counter-1) | |
break | |
# Verifică dacă a fost apăsată tasta Enter | |
if keyboard.is_pressed('enter') and (time.time() - last_capture_time) > 0.5: # Previne capturi duble | |
last_capture_time = time.time() | |
try: | |
# Capturează ecranul în zona definită | |
img = ImageGrab.grab(bbox=(left, top, right, bottom)) | |
# Salvează imaginea | |
img_path = os.path.join(output_dir, f"pagina_{page_counter:04d}.png") | |
img.save(img_path) | |
print(f"Pagina {page_counter} salvată: {img_path}") | |
# Incrementează contorul de pagini | |
page_counter += 1 | |
# Mică pauză pentru a preveni capturi multiple | |
time.sleep(0.5) | |
except Exception as e: | |
print(f"Eroare la capturarea paginii: {e}") | |
# Mică pauză pentru a reduce utilizarea CPU | |
time.sleep(0.1) | |
print("Capturare finalizată!") | |
print(f"S-au capturat {page_counter-1} pagini în directorul {output_dir}") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment