Kimi zaman hızlı ve kolay bir şekilde resim dosyalarının üzerine bir yazı yazmak isteyebiliriz. Böyle durumlarda Photosop ve muadili programlar işimizi yavaşlatırken hazır bir script ile yaptığımızda daha hızlı şekilde sonuca ulaşabiliriz.
bu yazıda PIL modülü ile resim üzerine yazı yazan bir python script paylaşacağım,
Dahası var
Windows her açılışta sürekli disk taraması yapıyor ve bundan kurtulmak istiyorum diyorsanız çaresi şu şekilde,
öncelikle başlat > çalıştır > cmd ile dos konsol ekranını açalım
ardından chkdsk c: /p /f diyerek diske dos ortamında adam gibi bir bakım yapalım ve hataları işaretlerek onarmaya çalışalım bu işlem diskin yoğunluğu ve bilgisayarın haleti ruhiyesi ile doğru orantılı olarak uzun sürecektir.buradaki c: sisteminizin kurulu olduğu sürücü harifini temsil etmektedir.
bu işlem bittikten sonra başlat > çalıştır > regedit yazalım, ve windows kayıt defteri düzenleyicisini açalım,
HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\Session Manager/BootExecute anahtarına çift tıklayın ve içindeki değeri silin. içindeki değeri de bir yere not edin. sorun çıkarsa eğer tekrar yazarsınız o değerin içine.yada dosya menüsünden al ver yapabilirsiniz.
bu işlemin ardından bilgisayarınızı yeniden başlatabilirsiniz sorun düzelmiş olacaktır.
C konsol programı ile çalışırken mutlaka konsoldan bazı değerlerin gelmesini isteyeceğizdir. çünkü konsol yazılımlarında kullanıcı ile program arasındaki tek bağ o değerlerdir. Kabaca örneklemek gerekirse,
copy c:\*.* c:\temp\*.*
burada copy ana komut c:\*.* birinci yan değer , c:\temp\*.* ise ikinci yan değerdir.
bizde yazdığım bir programda bize bu şekilde yan değerler göndermelerini ve o değerleri işlemek istiyorsak,
#include
int main(int argc, char **argv)
{
int i; //counter
for (i=0;i
return 0;
}
bu kadar (:
C konsol yazılımı yaparken bazı durumlarda ekranın işlem sonunda sabit kalmasını isteyebilirsiniz, tabi bu anlattığım windows platformu için geçerli.
böyle durumlarda işin kolayına kaçarak system(“pause”); fonksiyonu ile olayı geçitiririz,”yada geçiştiriyorlarmış”
bu fonksiyon kısaca sisteme “pause” komutunu gönderir, burada system C’nin fonksiyonu aldığı “pause” parametresi ise windows command shell’in duraksama parametresi.
bu fonksiyon çalıştığı yerde programı kullanıcı bir tuşa basasıya kadar bekletir ve ekrana “Devam etmek için bir tuşa basın…” yazısı çıkartır.
kimi zaman bu yazıyı görmek isteyeme bilirsiniz ki bende istememiştim ve o vesile ile araştırma yapma gereği duydum,
bunun için aklım şu yolları izleyebilirsiniz.
getch() fonksiyonu : Bu fonksiyon ekrana eko yapmaksızın klavyeden bir karakter okunmasını sağlar. Basılan tuşa ait karakter ekranda görülmez. Bu fonksiyonun kullanımı getch ( ) şeklindedir.
Çünkü parantezler arasınaki değer void olarak tanımlanmıştır. Getch ile okunan karakterin işlenmesi için bu karakterlerin bir değişkene atanması gerekir. Her fonksiyonda
olduğu gibi getch fonksiyonu da sonuçta bir değeri geri gönderir. Bu değer klavyeden okunan değerdir. okunan karakter daha sonra kullanılacaksa aşağıdaki gibi bir ifade
kullanılmalıdır.
system(“pause > temp”) fonksiyonu : Eğer amaç ekrana bahsi geçen yazının çıkmaması ise bu işlemde de ekrana hiç bir yazı basılmayacaktır. Çünkü mevcut konsol çıktılarının hepsi temp dosyasına tamponlacaktır.temp isimli dosya program hangi klasörde işlem yapıyorsa o klasöre açılacaktır. yani dos promtu hangi dizinde ise o dizin içerisinde açacaktır temp isimli dosyayı.
“No such file or directory: Failed to enable the ‘httpready’ Accept Filter” bu cümledeki gibi bir hatayı apache sunucunuzu başlatmak istediğinizde alıyorsanız öncelikle konsol satırından
kldload accf_http
komutunu uyguluyoruz,
bu sorunun daha sonrada nüksetmemesi için ise
/boot/loader.conf içerisine
accf_http_load="YES" ekleyerek kaydediyoruz.
a etiketli linklerde çoğu tarayıcı etrafına nokta nokta bir çerçeve çizer,bu çerçevede yine çoğu zaman sizin tasarımınızı bozuyor,insanı sinir ediyor.Hani derler ya sinek küçüktür miğde bulandırır diye buda o hesap
cevap ise çok basit ;
a:focus {
outline:none;
}
Yine uzun bir başlık yine kısa bir örnek kod (:
normalde böyle şeylere ne gerek var diyebilirsiniz ama an geliyor ki,elinizde bulunan bir js dosyasından başka bir dosyayı çağırmanız gerekiyor işte böyle durumlarda yapacaklarınız ;
function include(filename)
{
var body = document.getElementsByTagName('body').item(0);
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
body.appendChild(script)
}
işin mantığı basit aslında, xhtml şıtandardına göre her web sayfasında olması gereken body tagına yeni bir script nesnesi oluşturarak ekleme düzenine göre çalışan bir fonksiyonumuz var adı include,
bu include tanımı sitedeki statik olarak eklenen diğer JS dosyalarından ve Script nesnelerinden önce yazılır yada eklenirse daha güzel olur.zira fonksiyon herşeyden önce tanıtılmış olacaktır.
Kullanması son derece basittir;
<script type="'text/javascript'">
include('falanca.js');
include('filanca.js');
include('http://www.amanda.com/falanca.js');
</script>
Python’un bize sağladığı nimetler ile bir web sayfasının kaynak kodlarına ulaşabiliriz,bu ne işimize yarayacak derseniz web servisi veya api desteği veren sitelerin api sayfalarına bilgi göndererek dönen veriyi alarak ona göre işlem yapabilirsiniz,Programlama dünyası derin kuyu, hayal gücünüze göre ayakta kalıyorsunuz zira.
Edebiyatı bir kenara bırakacak olursak hemen örnek kodumuzu yazalım tam olsun,
biz bu iş için urllib2 kütühanesini kullanacağız hep beraber,
import urllib2
html = urllib2.urlopen('http://google.com').read()
print html
evet kodumuz bu kadar (: yazının başlığı içeriğinden uzun oldu.
çook uzun bir aradan sonra merhaba, bugün amacım birçok girdi yaparak anasayfanın eski havasını silmek,bayadır
blog ile ilgilenemedim malum, bugün Python ile nasıl resimleri boyutlandırabiliriz onun örnek kodunu yayınlayacağım
Kodumuzun birinci aşaması
from PIL import Image
import glob, os
size_file = 300,300
for f in glob.glob("*.png"):
file, ext = os.path.splitext(f)
img = Image.open(f)
img.thumbnail(size_file, Image.ANTIALIAS)
img.save("thumb_" + file, "JPEG")
burada PIL kütüphanesinin içerisinde bulunan Image fonksiyonunu aldık,
ardından işletim sistemi ve dosya yolundaki değişkenlerde sıkıntı çekmemek için glob ve os kütüphanelerini komple programımıza dahil ettik,
arıdan çalıştığımız dizindeki tüm png dosyalarını for döndüsü ile f değişkeni içerisine glob’ladık (aslında çok gereksiz bir kelime oldu, bunun yerinde aktardık desek düşük olmaz sanırım)
dosyamızın yerinde olup olamadığını kontrol edip,daha önceden size_file isimli değişkene atadığımız 300,300 dosya en boy değerlerini dosyamıza ulaşıp thumbnail alt fonksiyonu ile dosyamıza uyguladık.enson olarak dosyamızın adının başına thumb_ ibaresi ekleyerek dosyamızı naaptık ? evet kaydettik.
Bu örnekte dosyamız 300×300 örneklemeli olarak boyutlandırıldı ancak, burada en boy oranına sadık kalmadığımız için çok kötü görünen bir yapıda resmimiz oldu.
peki en boy oranına sadık kalarak yüzdesel olarak küçültme yapan bir fonksiyon yazmaya çalışırsak ?
import glob
import PIL
from PIL import Image
for f in glob.glob("*.jpg"):
img = Image.open(f)
dim_percent=(100/float(img.size[0]))
dim_size=int((float(img.size[1])*float(dim_percent)))
img = img.resize((100,dim_size),PIL.Image.ANTIALIAS)
if f[0:2] != "trumb_":
img.save("thumb_" + f, "JPEG")
evet ilk örnektekinden farklı olarak bu sefer oranlı şekilde küçültme işlemi yaptık.
umarım faideli olur.