Blok_Okuma
unknown
plain_text
a year ago
2.9 kB
8
Indexable
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)Editor is loading...
Leave a Comment