Category Archives: Nasıl Yapılır?

Bir iş, araç, program nasıl yapılır, kullanılır gibi konularda pratik ipuçları, öneriler ve benzeri…

Bir seri fotoğrafı negatife dönüştürmek gerekince…

Başlıktaki gibi ilginç bir ihtiyaç normalde doğmaz… ama yeni taşındığınız mahalledeki fotoğraf dükkanında “bu filmi yıkayıp, direk CD’ye aktarın, kart baskı istemiyorum” dediğinizde, elinizde tuttuğunuz film E-6 (dia pozitif) ve dükkandaki genç arkadaş çapraz işleme konusundan bihaber ise tuhaf olaylar yaşayabiliyorsunuz. Önce C-41 banyo ve E-6 banyonun, bu işlemler için üretilmemiş olsalar da her türlü film üzerinde amaçlanan sonucu doğurduğunu (pozitif ve negatif sonuç verdiğini) pozitif pozlanmış (E-6/Dia) ama negatif yıkanmış (standart C-41 banyosuna sokulmuş) bir filmin, parlak renkler, yüksek kontrast ve yer yer (benim gibi delilerin kabul edebileceği) sonuçlar veren bir işlem olduğunu anlatmanız gerekebiliyor… Bütün bunların sonucunda kafası hayli karışmış olan genç fotoğraf dükkanı çalışanı arkadaşımız, her nasıl becerdiyse banyo sırasında bütün renk değerleri birbirine girmiş bir negatifi (yeşil negatif de gördük sayesinde) CD’ye aktarmak üzere olduğu gibi taramış.

Yani yukardaki pehlivan tefrikasından anlayacağımız, CD’yi bilgisayara taktım, açtım, içindeki tüm görüntüler negatifti… Ne kadar can sıkıcı değil mi? Gwenview’in içindeki Kipi eklentilerinde ne yazık ki bir dizindeki tüm fotoğrafları negatife çevir diye bir özellik yok. (Ya da göremedim…) Ben de ne yaptım, sevgili python-imaging kütüphanesini kullanarak hepsini negatiflerini alarak tekrar kaydettim…

#!/usr/bin/python
# -*- coding: utf-8 -*-
import glob, Image, ImageChops
imaj = glob.glob("*.[Jj][Pp][Gg]")
for objemaj in imaj:
     im = Image.open(objemaj)
     nmaj = ImageChops.invert(im)
     nmaj.save(objemaj, "JPEG")

Bu kodu .py uzantısı ile kaydedip, dönüştürmek istediğiniz fotoğrafların olduğu klasörde çalıştırmanız yeterli… Asıl işi yapan PIL modülü içindeki ImageChops yani kanal işleyici alt modülü… El kitabındaki diğer işlevlerini sondan bir önceki satırdaki ImageChops.invert işleviyle değiştirerek denemeniz de mümkün…glob işlevini çağırmak lüzumsuzca görülebilir, jpg dosya isimlerini kontrol ederek çağırdığım bir başka betikte lazım olmuştu,sonuna bu döngüyü ekleyip kullanıverdi, o kadar kusur oluversin :)