Python ile Otomatik Farklı Renklerde Resimler Oluşturmak

Merhaba Arkadaşlar,

Python3, macOS PyCharm ile otomatik renkli resimler oluşturup üzerine 4 adet text ekleme istiyorum resimdede görüldügü gibi fotograflar oluşuyor belirli bir sayıda üretmek için for kullandım fakat tüm resimler aynı renkte color kısmını nasıl üretilen resim sayısı kadar random değiştirebilirim.

çıktı

kod :

    from PIL import Image, ImageDraw, ImageFont
# resim olustur
for resim in range(10):
    img = Image.new('RGB', (600, 600), color=(139, 26, 26))
    title_font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 23)
    adress_font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 12)
    t_font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 21)
    phone_font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 64)

d = ImageDraw.Draw(img)
d.text((10, 10), "text1 ", font=title_font, fill=(255, 255, 0))
d.text((10, 40), "text2", font=adress_font, fill=(255, 255, 100))
d.text((10, 60), "text3", font=adress_font, fill=(255, 255, 0))
d.text((10, 90), "tex4", font=t_font, fill=(255, 255, 255))
d.text((10, 120), "text5", font=phone_font, fill=(255, 255, 0))
uzanti = str('.jpg')
klasor = str('images/')
resims = str(resim)
img.save(klasor+resims+uzanti)

Sizi tam anlayamadım ayrı ayrı resimlerin renklerinimi değiştirmek istiyorsunuz ?

0 dan 9 a kadar olan resimlerin her birinin farklı renkte olmasını istiyorum şuan hepsi kırmızı

resimlerin rengini bu oluşturuyorsa şunu deneyebilirsiniz :

a = random.randint(0,200)
b = random.randint(0,50)
c = random.randint(0,200)
color = (a,b,c)

Olurmu bilemiyorum ama renkleri kendiniz belirlemek istemiyorsanız bir deneyin derim

Evet color’u random yapmak için @Wormer_King’ın verdiği kodu kullanabilisiniz ama hepsi random.randint(0, 255) olursa daha iyi olur, RGB nin değer aralığı bu.

@EkremDincel b değerinin pygame 'de 50 arası olduğu için yapmıştım RGB nin renk aralığını bilmiyordum

Orada da 0-255.

Demekki 1-2 günlük Pygame bilgisi ile konuşmamam gerekiyormuş :frowning:
daha yolun çok başındayım

@EkremDincel konu ile alakasız ama ne zamandan beri Python biliyorsunuz ?

1 yılı biraz geçiyor.

Python hakkında pekçok şey biliyorsunuz yani

şöyle açıklayım örnek olarak

0.jpg = mavi
1.jpg = sarı
2.jpg = kırmızı
3.jpg = mor
4.jpg siyah

her jpg dosyasının farklı renkte olmasından bahsediyorum

O farklı renklerin mavi, kırmızı gibi önceden belirlenmiş renkler olmasını istiyorsanız o renkleri tanımlamanız lazım. Eğer tamamen rastgele olmasını ve herhangi bir renk elde etmek istiyorsanız zaten gerekli kod atıldı.

Font oluşturma işlemlerini döngü dışına çıkarırsanız kodunuz daha verimli çalışır.

Bir de str fonksiyonuna niçin bir str örneği veriyorsunuz anlamadım:

1 Beğeni

@jamyo
örnek olarak şu kodu yazdım değerleri değiştirebilirsiniz.

"0" = (0,12,12)
"1" = (12,13,55)
"2" = (85,36,94)
"3" = (78,5,4)

ve şunarı istediğiniz sırayla listeye atarsanız

for liste in renkler:
      "0"
      "1"

şeklinde sıraya dizebilirsiniz.

1 Beğeni

bu for döngüsünü üsteki koda ekleyip yazabilrmisin random gelecek renkler ve her jpg dosyasına nasıl farklı rengi veriyor bu for döngsü

1 Beğeni

rica etsem programınızda şu kodu bir denermisiniz ?

import random

değer = 0

for renkler in range(değer):
    a = random.randint(0,200)
    b = random.randint(0,50)
    c = random.randint(0,200)
    color = (a,b,c)