Neler yeni

Python ile fotoğraflara filigran / watermarkt ekleme.

MaSTeR

Yönetici
Katılım
30 Ocak 2022
Mesajlar
39
Tepkime puanı
119
Puanları
350
1744846555389.png


from PIL import Image, ImageEnhance
import os
# === AYARLAR ===
input_klasoru = "giris" # Orijinal görsellerin bulunduğu klasör
output_klasoru = "sonuc" # Filigranlı çıktıların kaydedileceği klasör
filigran_dosyasi = "filigran.png" # Kullanılacak filigran (şeffaf PNG önerilir)
konum = "center" # 'center', 'top_left', 'top_right', 'bottom_left', 'bottom_right'
filigran_boyut_orani = 0.5 # Görselin %50'si kadar büyük filigran
saydamlik = 0.4 # 0.0 (tam şeffaf) - 1.0 (tam opak)
# Çıktı klasörü oluşturulmamışsa oluştur
if not os.path.exists(output_klasoru):
os.makedirs(output_klasoru)
# Filigranı yükle ve şeffaf hale getir
filigran_orijinal = Image.open(filigran_dosyasi).convert("RGBA")
def filigran_ekle(resim_yolu):
ana_gorsel = Image.open(resim_yolu).convert("RGBA")
w, h = ana_gorsel.size
# Filigranı yeniden boyutlandır
filigran_genislik = int(w * filigran_boyut_orani)
oran = filigran_genislik / filigran_orijinal.width
yeni_boy = (filigran_genislik, int(filigran_orijinal.height * oran))
filigran_yeni = filigran_orijinal.resize(yeni_boy, Image.LANCZOS)
# Saydamlık ayarla
alpha = filigran_yeni.split()[3]
alpha = ImageEnhance.Brightness(alpha).enhance(saydamlik)
filigran_yeni.putalpha(alpha)
# Pozisyon belirle
if konum == "center":
pos_x = (w - filigran_yeni.width) // 2
pos_y = (h - filigran_yeni.height) // 2
elif konum == "bottom_right":
pos_x = w - filigran_yeni.width - 10
pos_y = h - filigran_yeni.height - 10
elif konum == "bottom_left":
pos_x = 10
pos_y = h - filigran_yeni.height - 10
elif konum == "top_right":
pos_x = w - filigran_yeni.width - 10
pos_y = 10
else: # top_left veya geçersiz değer
pos_x = 10
pos_y = 10
# Filigranı ana görsele yapıştır
ana_gorsel.paste(filigran_yeni, (pos_x, pos_y), filigran_yeni)
return ana_gorsel.convert("RGB") # JPEG kaydı için RGB'ye çevir
# === Tüm görselleri işle ===
islenen = 0
for dosya in os.listdir(input_klasoru):
if dosya.lower().endswith((".png", ".jpg", ".jpeg")):
yol = os.path.join(input_klasoru, dosya)
sonuc = filigran_ekle(yol)
sonuc_konumu = os.path.join(output_klasoru, dosya)
sonuc.save(sonuc_konumu)
print(f"✔ {dosya} işlenip kaydedildi → {sonuc_konumu}")
islenen += 1
print(f"\n✅ Toplam {islenen} görsele filigran eklendi.")


Python ile çalışan bu program, giris klasöründeki fotoğrafları sonuc klasörüne filigran ekleyerek çıktı oluşturur. Filigran ayarları kod içerisinde değiştirilebilir.

Çalıştırmak için python ve pillow kütüphanesini indirmeniz gerekiyor.
 
Üst Alt