🔳
Ekran Yönetimi

💠 Ekran Yönetimi Metotları

💾 Ekran Görüntüsünü Alma ve Kaydetme
🟦 Kısayol ile Ekran Alanı Seçme
1
from PIL import ImageGrab as ig
2
3
import numpy as np
4
import time
5
import cv2
6
7
# Hata ayıklama ve bilgilendirme notlarını aktif edery
8
DEBUG = True
9
10
# Çıktı kaydını aktif etme
11
KEEP = False
12
13
# Yakalanacak ekranın konum bilgileri (x0, y0, x1, y1)
14
CAPTURE_AREA = (80, 101, 1111, 923)
15
16
# Yakalanan ekranın gösterilme boyutu (Varsayılan için 0 yapın)
17
WIDTH = 0
18
HEIGHT = 0
19
20
# FPS sayacını tanımlama
21
if DEBUG:
22
frame_count = 0
23
last_time = time.time()
24
25
out = cv2.VideoWriter(
26
'output.avi',
27
cv2.VideoWriter_fourcc(*'XVID'),
28
5.0,
29
(CAPTURE_AREA[2] - CAPTURE_AREA[0], CAPTURE_AREA[3] - CAPTURE_AREA[1])
30
) if KEEP else None
31
32
while True:
33
screen = ig.grab(bbox=CAPTURE_AREA)
34
screen_np = np.array(screen)
35
36
# BGR tipindeki görüntüyü RGB yapıyoruz
37
screen_np_RGB = cv2.cvtColor(screen_np, cv2.COLOR_BGR2RGB)
38
39
# Gösterilecek ekranın boyutunu ayarlama
40
screen_width = WIDTH if WIDTH != 0 else CAPTURE_AREA[2] - CAPTURE_AREA[0]
41
screen_height = HEIGHT if WIDTH != 0 else CAPTURE_AREA[3] - CAPTURE_AREA[1]
42
43
# Kaydedilen ekranı uygun boyutta görüntüleme
44
cv2.imshow(
45
'Ekran görüntüsü',
46
cv2.resize(
47
screen_np_RGB,
48
(
49
screen_width,
50
screen_height
51
)
52
)
53
)
54
55
# Dosyaya yazma
56
out.write(screen_np_RGB) if KEEP else None
57
58
# 'q' tuşuna basıldığında çıkma işlemi
59
if cv2.waitKey(25) & 0xFF == ord('q'):
60
out.release() if KEEP else None
61
cv2.destroyAllWindows()
62
break
63
64
# FPS bilgilerini hesaplama ve ekrana basma
65
if DEBUG:
66
frame_count += 1
67
if time.time() - last_time >= 1:
68
print('FPS: {}'.format(frame_count))
69
frame_count = 0
70
last_time = time.time()
Copied!
1
def draw_dimension(hotkey="ctrl_l") -> tuple:
2
"""Ekrandan seçilen alanın koordinatlarını verir
3
4
Keyword Arguments:
5
hotkey {string} -- Klavye kısayolu (default: {None})
6
7
Returns:
8
tuple -- Seçilen alanın koordinatları `(x0, y0, x1, y1)`
9
"""
10
11
# Farenin başlangıç ve bitiş konumları
12
start_position, end_position = (0, 0)
13
14
def listen_keyboard():
15
with keyboard.Listener(on_press=on_press, on_release=on_release) as keyboard_listener:
16
keyboard_listener.join()
17
18
def on_press(key):
19
# Başlangıç koordinatlarını oluşturma
20
if key == keyboard.Key[hotkey]:
21
nonlocal start_position
22
start_position = mouse.Controller().position
23
24
def on_release(key):
25
# Bitiş koordinatlarını başlangıca ekleme
26
if key == keyboard.Key[hotkey]:
27
nonlocal end_position
28
end_position = mouse.Controller().position
29
30
# Dinleyiciyi kapatma
31
return False
32
33
print(
34
f"Seçmek istediğiniz alanın başlangıç noktasına farenizi getirin ve {hotkey} tuşuna basılı tutarak farenizi alanın bitiş noktasına götürün.")
35
36
listen_keyboard()
37
return start_position + end_position
38
39
print(draw_dimension())
Copied!
Last modified 1yr ago
Copy link