o} Ömer Ücel

Haziran 8, 2006

[Python] Resim Ölçekleme

Kategori: Programlama — Ömer Ücel @ 10:09 am

Bu işlem için bu adresten Python Imaging Library i indirip kurmanız gerekmekte.


# -*- coding: cp1254 -*-
# PIL kullanılarak resim ölçekleme
# indirmek için aşağıdaki adresi ziyaret ediniz.
# http://www.pythonware.com/products/pil/index.htm

import Image

#Resim belirleniyor
imageFile = “resim_olcekle.jpg”

im1 = Image.open(imageFile)

#ölçeklenecek boyut belirleniyor.
width = 500
height = 420
#Aşağıdaki filtrelere göre istediğiniz seçimi yapabilirsiniz. Hepsi aşağıda.
im2 = im1.resize((width, height), Image.NEAREST)
im3 = im1.resize((width, height), Image.BILINEAR)
im4 = im1.resize((width, height), Image.BICUBIC)
im5 = im1.resize((width, height), Image.ANTIALIAS)

ext = “.jpg”
im2.save(“NEAREST” + ext)
im3.save(“BILINEAR” + ext)
im4.save(“BICUBIC” + ext)
im5.save(“ANTIALIAS” + ext)

#Küçültme işlemi gerçekleştikten sonra kaydedilen küçülmüş resimlerden bir tanesine göz atıyoruz.
import os
os.system(“BILINEAR.jpg”)

Nisan 23, 2006

wxPython ProgressDialog (İlerleme Çubuğu)

Kategori: Programlama — Ömer Ücel @ 1:38 am

# -*- coding: cp1254 -*-
import wx

uygulama = wx.PySimpleApp()

dialog = wx.ProgressDialog ( 'İlerleme Çubuğu', 'Lütfen Bekleyiniz', maximum = 100, style = wx.PD_AUTO_HIDE )
wx.Sleep ( 1 ) #Uyu
#20 basamak ileri
dialog.Update ( 20, '1.' )
wx.Sleep ( 1 ) #Uyu
#40 basamak ileri
dialog.Update ( 40, '2.' )
wx.Sleep ( 1 ) #Uyu
#60 basamak ileri
dialog.Update ( 60, '3.' )
wx.Sleep ( 1 ) #Uyu
#80 basamak ileri
dialog.Update ( 80, '4.' )
wx.Sleep ( 1 ) #Uyu
#100 basamak ileri
dialog.Update ( 100, '5' )

Nisan 22, 2006

Python Threading(Eş zamanlı işlemler)

Kategori: Programlama — Ömer Ücel @ 6:26 am

Aynı anda birden çok işlem yapmak için bu yöntemi kullanabilirsiniz. Mesela benim gibi ftp ye dosya göndermeye çalışıyor ve dosyanız giderken programınız bir süreliğine kilitleniyorsa size de kodların ilaç gibi geleceğine inanıyorum.

import threading

class guncelle(threading.Thread):
    #Eğer işlem içine bazı değerler aktarılması gerekiyorsa __init__ kullanmanız gerekiyor
    def __init__(self,deger1,deger2):
        self.deger1=deger1
        self.deger2=deger2
        threading.Thread.__init__(self)

    def run(self):
        print self.deger1 , self.deger2

guncelle("deger1","deger2").start()

Burada "run" fonksiyonuna yapılması gereken işlem kodlarını yazıyorsunuz. Eğer bu işleme dışarıdan bir kaç değer alacaksanız __init__ fonksiyonunu da kodlar arasına eklemelisiniz.

Daha fazla bilgi edinmek için şu adrese göz atmanızda yarar var.

http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/

Onun haricinde herhangi bir arama motorunda "python threading using" kelime grubunu aratırsanız bir çok sayfa ile karşılaşacaksınız.

Nisan 18, 2006

Python ile FTP

Kategori: Programlama — Ömer Ücel @ 2:16 am

Aşağıdaki kodlarla bir ftp ye bağlanıp ondaki klasör listesini alabilirsiniz.


import ftplib
ftp=ftplib.FTP("lin1.freewebdot.com")
print ftp.login("mrcplus.org","ğççğşğ")
dizin=ftp.nlst()
print ftp.quit()

print dizin

Nisan 16, 2006

Saat Tarih kontrolü

Kategori: Programlama — Ömer Ücel @ 7:33 pm

Aşağıdaki kodlar ile saat tarih yada ikisini birlikte kolay bir şekilde kullanabilirsiniz.

import time

class SaatTarih:
    def __init__(self,tur):
        zaman=time.localtime(time.time())
        if tur=="saat":
            self.deger="%d:%d:%d" % (zaman[3],zaman[4],zaman[5])
        elif tur=="tarih":
            self.deger="%d.%d.%d" % (zaman[2],zaman[1],zaman[0])
        elif tur=="tarihsaat":
            veri=SaatTarih('tarih')
            self.deger=veri.deger
            veri=SaatTarih('saat')
            self.deger=self.deger + " " + veri.deger

Kullanımı ise şu şekilde

veri=SaatTarih('saat')
print veri.deger

Nisan 6, 2006

wxPython da Notebook

Kategori: Programlama — Ömer Ücel @ 3:38 pm

Bölümlü programlar yazarken yada bir ayarlar bölümü oluşturduğunuzda size kolaylık sağlayacak bir özellik. Tablar vasıtası ile küçük bir alanda daha geniş içerik yada özellik sunabilirsiniz. Kodlar aşağıda:


# -*- coding: cp1254 -*-
import wx

class Uygulama(wx.Frame):
def __init__(self,parent,id,title):
    wx.Frame.__init__(self,parent,-4, title,style=wx.DEFAULT_FRAME_STYLE)

    #Notebook bileşenini oluşturuyoruz
    self.Notebook =wx.Notebook(self,-1,wx.DefaultPosition,wx.DefaultSize,wx.NB_TOP)

    #İlk taşıyıcımızı oluşturup içine
    #bir etiket yerleştiriyoruz
    self.panel1=wx.Panel(self.Notebook, -1)
    text1=wx.StaticText(self.panel1,-1,"Panel 1 İçeriği")

    #İkinci taşıyıcımızı oluşturup
    #içine bir başka etiket yerleştiriyoruz.
    self.panel2=wx.Panel(self.Notebook, -1)
    text2=wx.StaticText(self.panel2,-1,"Panel 2 İçeriği")

    #İlk Tabı oluşturuyoruz
    self.Notebook.AddPage(self.panel1,'Tab 1')
    #İkinci Tabı oluşturuyoruz
    self.Notebook.AddPage(self.panel2,'Tab 2')

if __name__=="__main__":
    app = wx.PySimpleApp()
    frame = Uygulama(None, -1, "wxPython Notebook Örneği")
    frame.Show(1)
    app.MainLoop()

Nisan 5, 2006

Python ile Access işlemleri

Kategori: Programlama — Ömer Ücel @ 12:59 am

Python da hep shelve yi kullanıyordum programlarımda. Ancak karmaşa bazen büyük oluyor. Bugün bununla ilgilendim. Bir programda shelve kullanmıştım. Ancak onu değiştirip MS Access ile işlemleri yapmak işleri daha kolaylaştırıyordu. Yaptığım küçük örneğe göz attıktan sonra kaynak olarak verdiğim adresi ziyaret edebilirsiniz.


# -*- coding: cp1254 -*-
import win32com.client

#Veritabanı Bağlantısı
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\Python24\Programlar\ATC\ATC-data.mdb;' #Burada veritabanı yolunu belirtiyoruz.
conn.Open(DSN)

rs = win32com.client.Dispatch(r'ADODB.Recordset')#Tanımlamayı yap
rs_name = 'Urunler'
rs.Open('[' + rs_name + ']', conn, 1, 3) #Tabloyu aç

#Veritabanındaki kayıtları yazdırıyoruz.
while not rs.eof:
    if rs.eof: #Kayıt bitti ise döngüyü durdur
        break
    else:
        print rs.Fields.Item('Urun').Value #Urun adlı hücredeki değeri yazdır
    rs.MoveNext() #Diğer Kayıta geç

Kaynak

« Daha Yeni Gönderiler

WordPress.com'dan blog alın.