Untitled
unknown
plain_text
a year ago
2.9 kB
6
Indexable
import cv2 import numpy as np import os import random import time # Parametreler canvas_w, canvas_h = 1100, 600 nesne_boyutu = 100 # Emoji boyutu nesne_aralik = 10 # Emojiler arasındaki boşluk emoji_klasor = 'emojiler/' # Emoji klasör yolu arka_plan_rengi = (255, 255, 255) # Beyaz arka plan cerceve_rengi = (211, 211, 211) # Gri çerçeve rengi nesne_adedi = 6 # Toplam nesne sayısı gosterim_suresi = 5 # Her bir emoji'nin ekranda kalma süresi (saniye) def load_emojis(emoji_klasor): emojiler = [] for dosya_adi in os.listdir(emoji_klasor): if dosya_adi.endswith('.png'): emoji_yolu = os.path.join(emoji_klasor, dosya_adi) img = cv2.imread(emoji_yolu, cv2.IMREAD_UNCHANGED) if img is not None and img.shape[2] == 4: emojiler.append(img) else: print(f"Yüklenemeyen dosya: {dosya_adi}") return emojiler def overlay_image(background, img, position): x, y = position h, w = img.shape[:2] if y + h > background.shape[0] or x + w > background.shape[1]: return alpha_img = img[:, :, 3] / 255.0 alpha_bg = 1.0 - alpha_img for c in range(0, 3): background[y:y+h, x:x+w, c] = (alpha_img * img[:, :, c] + alpha_bg * background[y:y+h, x:x+w, c]) def emoji_display(): emojiler = load_emojis(emoji_klasor) if not emojiler: print("Emoji resimleri yüklenemedi!") return # Pencereyi oluştur frame = np.full((canvas_h, canvas_w, 3), arka_plan_rengi, dtype=np.uint8) # Çerçeve boyutları ve koordinatları cerceve_yukseklik = nesne_boyutu + 2 * nesne_aralik cerceve_w = (nesne_boyutu + nesne_aralik) * nesne_adedi - nesne_aralik start_x = (canvas_w - cerceve_w) // 2 start_y = (canvas_h - cerceve_yukseklik) // 2 # Rastgele 6 emoji seç secilen_emojiler = random.sample(emojiler, nesne_adedi) # Ekranda göstermek için bir pencere oluştur for i in range(nesne_adedi): frame = np.full((canvas_h, canvas_w, 3), arka_plan_rengi, dtype=np.uint8) cv2.rectangle(frame, (start_x, start_y), (start_x + cerceve_w, start_y + cerceve_yukseklik), cerceve_rengi, -1) # Her yeni emoji'yi ekranda göster for j in range(i + 1): # Şu ana kadar gelen tüm emoji'leri göster emoji = cv2.resize(secilen_emojiler[j], (nesne_boyutu, nesne_boyutu), interpolation=cv2.INTER_AREA) x = start_x + j * (nesne_boyutu + nesne_aralik) y = start_y + nesne_aralik overlay_image(frame, emoji, (x, y)) # Pencereyi güncelle ve bekle cv2.imshow("Emoji Display", frame) cv2.waitKey(gosterim_suresi * 1000) # Her bir emoji'nin ekranda kalma süresi kadar bekle cv2.destroyAllWindows() emoji_display()
Editor is loading...
Leave a Comment