Blok_Okuma

mail@pastecode.io avatar
unknown
plain_text
a month ago
2.9 kB
3
Indexable
Never
import random
from PIL import Image, ImageDraw, ImageFont
import cv2
import numpy as np

def blok_okuma(zaman, paragraf, kelime_sayisi):
    try:
        # UTF-8 kodlaması ile dosyayı aç ve oku
        with open(paragraf, 'r', encoding='utf-8') as file:
            # Dosyanın tamamını okuyup paragraflara bölelim
            p_liste = file.read().split('\n\n')
            
            # Paragraf listesinin boş olup olmadığını kontrol et
            if not p_liste:
                print("Dosya boş veya okunamadı.")
                return
            
            # Rastgele bir paragraf seçelim
            sayi = random.randint(0, len(p_liste) - 1)
            
            # Seçilen paragrafı kelimelere bölelim
            kelimeler = p_liste[sayi].split()
            
            # Her seferde kelime_sayisi kadar kelimeyi gruplar halinde alalım
            for i in range(0, len(kelimeler), kelime_sayisi):
                grup = kelimeler[i:i + kelime_sayisi]  # Belirtilen sayıda kelime al
                
                # Grupları birleştirip tek satır haline getirelim
                kelime_grubu = ' '.join(grup)
                
                # Boş bir görüntü oluşturalım (150x600 boyutunda) - PIL ile
                img = Image.new('RGB', (600, 150), color='white')
                
                # Bir yazı tipi seçelim, bu bilgisayarda mevcut bir font dosyası olmalıdır
                try:
                    font = ImageFont.truetype("arial.ttf", 24)  # Arial fontunu kullan
                except IOError:
                    font = ImageFont.load_default()  # Font bulunamazsa varsayılan fontu kullan
                
                draw = ImageDraw.Draw(img)
                
                # Metin boyutlarını hesaplayalım
                bbox = draw.textbbox((0, 0), kelime_grubu, font=font)
                text_width = bbox[2] - bbox[0]  # Genişlik
                text_height = bbox[3] - bbox[1]  # Yükseklik
                
                # Metni görüntünün ortasına yerleştirmek için koordinatlar
                x = (img.width - text_width) // 2
                y = (img.height - text_height) // 2
                
                # Kelime grubunu ortalayarak görüntüye yazalım
                draw.text((x, y), kelime_grubu, font=font, fill='black')
                
                # PIL görüntüsünü OpenCV formatına çevirelim
                img = np.array(img)
                img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
                
                # Görüntüyü göster
                cv2.imshow('Kelime Grubu', img)
                cv2.waitKey(zaman)  # Bekleme süresi (milisaniye)

            cv2.destroyAllWindows()  # Pencereleri kapat

    except Exception as e:
        print(f"Dosya okuma hatası: {e}")

blok_okuma(500, 'biyoloji.txt', 2)
Leave a Comment