IOS 4.1’de kamera aplikasyonunun HDR özelliğini açıp kapatmak

Geçmiş senelerde bana bir cep telefonu ile ilgili bloguma bir yazı yazacağımı söyleseydiniz, inanmazdım. Ama bu da artık oldu. Ama artık bu aletler, cep telefonundan çok mobil cihaz. Ne tip bir cihaz peki?.. Daha çok bilgisayar. Hele iphone’u kırınca, bu cihazı şöyle bir hale dönüştü. Evet modifiye edilmiş bir linux bilgisayar, önünde dokunmatik ekranı var. Önünde ve arkasında bir kamerası, bir mikrofonu, bir kulaklığı ve dahili ses kartına bağlı bir hoparlörü var. Bir de 3G modemi var…

Beni telefonla konuştururken, bilgisayar sesi mikrofon girişinden capture ediyor ve dataya çeviriyor, karşımdakinin sesi için de aynısını tersten yaparak, onun sesini bana duyuruyor. Bu aletin yapabilirliklerinin bence 1% civarını oluşturuyor. Geriye kalansa tam bir linux bilgisayar!..

Şimdilerde bu linux’ta nerede ne dosya var diye kurcalamaya başladım. Kamera aplikasyonunun bulunduğu dosyalara baktım. Bu aplikasyon /System/Library/CoreServices/SpringBoard.app directorysinde yer alıyor. Iphone4 için bu klasördeki N90AP.plist dosyası aslında XML bir dosya. Dosyanın içeriğiyse şöyle:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>capabilities</key>
	<dict>
		<key>720p</key>
		<true/>
		<key>camera-flash</key>
		<true/>
		<key>displayport</key>
		<true/>
		<key>front-facing-camera</key>
		<true/>
		<key>gyroscope</key>
		<true/>
		<key>hd-video-capture</key>
		<true/>
		<key>hdr-image-capture</key>
		<true/>
		<key>hide-non-default-apps</key>
		<false/>
		<key>hidpi</key>
		<true/>
		<key>hw-encode-snapshots</key>
		<true/>
		<key>marketing-name</key>
		<string>iPhone 4</string>
		<key>venice</key>
		<true/>
	</dict>
	<key>include</key>
	<array>
		<string>N88AP</string>
	</array>
</dict>
</plist>

Hemen farkedeceğiniz gibi, bu XML dosyayı editleyerek, 720p video kayıt, kamera flaşı, gyroscope özelliğini açıp kapatmamız mümkün. Tek yapacağımız bu değerlere, true ya da false yazmak!

Ama esas ilginç konuya gelecek olursak, bu da hdr-image-capture satırı. Bu satır ile HDR özelliği açılıp kapatılabiliyor. Zaten bu ayarı değiştirdikten sonra, iphone4G‘yi reboot etmek gerekiyor. Ama buna bir iphone4 kullanıcısı neden ihtiyaç duysun ki? Evet, pek de anlamlı görünmüyor… Ancak iphone3G ya da iphone3GS kullanıcılarının bu aplikasyonun IOS4.1 ile gelen HDR özelliğinden faydalanamadığını hatırlarsak, jeton hemen düşer.

Bu aplikasyonun 3G ve 3Gs için de ayarlanabileceğini düşünürsek, eski jenerasyon iphone’lar ile de HDR fotograf çekmek mümkün olabilir. Bu konuyla ilgili en yakın zamanda 3G bir iphone ile test yapacağım. Umarım HDR özelliği bu dosyadaki ayarlamalar ile açılır. Tabii bunun sonucuna göre Apple’a ne deriz bilemem… İnsanların iphone4 satın almaları için, yazılım ayarlarıyla HDR özelliğini 3G ve 3Gs modellerinde özellikle mi kapadılar? Bilemiyorum, test edip sonuçlarına bakacağım.

Mac OS X ile python scriptlerini shell’den çalıştırmak

Linux’ta bir python scriptini execute etmek için, dosyanın eXecute flaginin açık olmasının haricinde, bir de dosyanın ilk satırında

#!/usr/bin/env python

yazmak gerekmektedir. Ancak bunu MacOSX ile bir terminalden denediğinizde çalışmıyor! İlk çözüm: “python myScript.py” yazarsanız terminalde, python scripti çalışıyor. Ama sadece dosyanın adını yazarak, terminalden scripte execute etmek istersek, scriptimizin başındaki satırı

#!/usr/local/bin/python

şeklinde değiştirmeliyiz. Eğer dosyamızın execute flagi açıksa, artık MacOS’ta scriptimiz execute edecektir. Bu durum MacOSX 10.5.8 ile test edilmiştir.

askopenfilename ile dosya uzantısı sorunu

Üzerinde çalıştığım bir python programında Tkinter kullandım, askopenfilename ile GUI üzerinden, sadece uzantıları .edl olan dosyaları açarak işliyordum. Bunu da şöyle yapıyordum:

filename = askopenfilename(filetypes=[("edl","*.edl")])

Ancak kısa süre sonra farkettim ki, bazı kullanıcılar dosyaların uzantılarını büyük harfle .EDL dosyası olarak da adlandırabiliyorlar. Uzun süre araştırdım, yapılabilecek en basit şey, büyük harfle ekstra bir tip tanımlamaktı.

filename = askopenfilename(filetypes=[("edl","*.edl),("EDL","*.EDL")])

Tahmin edeceğiniz üzere böyle bir çözüm beni tatmin etmedi. Benim istediğim şey kullanıcı ‘edl’ formatını seçtiğinde, hem küçük harf hem de büyük harfli .edl dosyalarının seçilmesiydi. Konuyu bayağı googleladığımda, pek de detayları anlatan bir döküman bulamadım. Ancak sonunda örnek bir codeda bana gereken kullanım şeklini buldum. Aslında çok basitmiş.

filename = askopenfilename(filetypes=[("edl","*.edl *.EDL")])

Yani sadece boşluk ile ayırarak, olası tüm uzantı tiplerini yazıyoruz o kadar…