osx tarafından Pzt, 26/09/2011 - 1:06öö tarihinde gönderildi.
-Benek etkisi
# -*- coding: cp1254 -*-
import Image,ImageDraw,ImageFilter,ImageChops
deger = 4
aralik = deger*2
kare = 0
grafik = "S30100072.JPG"
tur = "elips" # veya "dikdörtgen
kaplama_rengi=(255,0,255) #"#000000"
grafik=Image.open(grafik) #grafik açıldı.
grafik = grafik.filter(ImageFilter.BLUR) #doğru renk tahmini için yumuşatma etkisi.
boyut = grafik.size #grafiğin boyutu belirlendi.
yeni=Image.new("RGB",boyut) #çizim yapılacak yeni grafik yazırlandı.
boya = ImageDraw.Draw(yeni) #"yeni" grafiği çizim fonksiyonlarının kullanımı için hazırlandı.
y_duzlem = list(xrange(deger,boyut[1],aralik)) #y düzlem aralığı belirlendi:
# yukarida y düzlemi için liste hazırlandı, x düzleminde
# kullanılan xrange fonksiyonu bir kere çalişacaktır fakat
# alt dongu her "x düzlemi dongüsünde" tekrar tekrar çalışacaktır
# bu da performans kaybi demektir, eski kullanim:
##for a in range(deger,boyut[0],aralik):
## for b in range(deger,boyut[1],aralik):
## ...
# performans acisindan range fonksiyonu yerine xrange
# fonksiyonu tercih edilmistir -ki bu fonksiyon python 3000'de
# "range" olarak gecer.
for a in xrange(deger,boyut[0],aralik): #x düzlem döngüsü.
for b in y_duzlem:
renk=grafik.getpixel((a,b))
if tur=="elips": #...ise elips çizen fonksiyon:
boya.ellipse([(a-deger,b-deger),(a+deger,b+deger)],renk)
if tur=="dikdörtgen": #...ise dikdörtgen çizen fonksiyon:
boya.rectangle([(a-deger,b-deger),(a+deger,b+deger)],renk)
yeni.save("/forum/python_imaging_library_pil_C3B6rnek_ve_uygulamalarC4B1/sonuc.jpg",quality=90) # boyanan grafik kaydedildi.
osx tarafından Pzt, 26/09/2011 - 1:06öö tarihinde gönderildi.
Sitelerde belirli yerlere yerleştirilen güvenlik grafiklerini bilirsiniz... bu örnekte rastgele güvenlik grafikleri üreten bir uygulamayı sizlere anlattım.
# -*- coding: cp1254 -*-
import Image,ImageDraw,ImageFont,random
arkaplan = map(random.randrange,[255,255,255])
# map fonksiyonu ile randrange fonksiyonuna 3 renk
# kanali icin (RGB) deger atmasını istedik.
# python 3000 için kullanımı;
##arkaplan = list(map(random.randrange,[255,255,255]))
grafik = Image.new("RGB",(80,20),(arkaplan[0],arkaplan[1],arkaplan[2]))#arkaplan grafiği uluşturuldu
boyama = ImageDraw.Draw(grafik)
# yukarıda "grafik" boyama fonksiyonları için hazırlandı
font = ImageFont.truetype("courier.ttf",20) #font dosyası,font boyutu
# yukarıda font yüklendi, "courier.ttf" font
# dosyasının uygulama ile aynı klasörde olması lazım
karakterler = random.sample(["1","2","3","4","5","a","c","d","e","f","g","A","B","C"], 4)
# yukarıda rastgele dört* karakter seçildi, bu karakterler
# for döngüsü ile "grafik"e yazılacak.
artan = 0 #karakter arası boşluğu tutan değişken...
for x in karakterler:
renk = map(random.randrange,[255,255,255]) #her döngüde rastgele renk (R,G,B)
boyama.text((artan, 0),x, font=font,fill=(renk[0],renk[1],renk[2])) #Boyama işlemi
artan = artan+20 #boşluk
grafik.save("sonuc.bmp")
# grafik kaydedildi.
yukarıdaki uygulamayı geliştirebilirsiniz, konumu da rastgele belirlenir hale getirebilirsiniz mesela...
Melen tarafından Pzt, 02/06/2008 - 5:14ös tarihinde gönderildi.
Denedim ve çalışıyor. Özgürlükiçin forumunda çıkardıkları e-dergide bi ihtimal django dersleri verebilrim diyen birini görmüştüm. Djangodan da çaksak pythonla güzel bir web sitesi yapardık. Yada başka başka şeyler
osx tarafından Pzt, 26/09/2011 - 1:06öö tarihinde gönderildi.
ayrıca: ilk örnek 2007 yılında yazıldı, açıklamalarsa bugün yazıldı.
Bir metin belgesindegi rakamları grafiğe dökmek:
Bu uygulama ile bir metin dosyasındaki rakamların grafiğini alabilirsiniz, grafiğin genişliği metin belgesindeki rakamların sayısının 10 katı olacaktır.
# -*- coding: cp1254 -*-
import Image,ImageDraw
dosya = open("/forum/python_imaging_library_pil_C3B6rnek_ve_uygulamalarC4B1/veri.txt","r") #sayilarin bulundugu yazı dosyası
okunan = dosya.read() #dosya okunuyor...
renk = 230,150,150 #arka plan çizgi rengi
yeni = Image.new("RGB",(len(okunan)*10,100),(255,255,255))
# yukarıda çizim yapılacak grafik hazırlanmıştır.
# çözünürlük tespiti //x düzlemi //:(len(okunan),
# kullanımı:(GRAFİK_TÜRÜ,(ÇÖZÜNÜRLÜK),(ARKAPLAN_RENGİ))
cizim = ImageDraw.Draw(yeni)
boyut = yeni.size
# oluşturulan grafiğin boyutu alınıyor...
# grafiğin arka planındaki kareler çiziliyor:
for x in range(0,boyut[0],10): #yatay çizgiler...
cizim.line([(x,0),(x,boyut[1])],renk)
for y in range(0,boyut[1],10): #dikey çizgiler.
cizim.line([(0,y),(boyut[0],y)],renk)
l=1
x=0
for a in range(len(okunan)):
l=-1*l
k0=x,100-(int(okunan[a])*10)#eger okunan "5" ise yükeseklik: "50" piksel
k1=x-10,100-(int(okunan[a-1])*10)# yönünün doğru olması için: 100 - (int(okunan[a-1])*10
if a<>0:
cizim.line([(k0),(k1)],(0,0,0))
x=x+10
yeni.save("/forum/python_imaging_library_pil_C3B6rnek_ve_uygulamalarC4B1/sonuc.gif") #çizilen grafik gif formatında kaydedildi // png, bmp, jpg...
osx
Re: Python Imaging Library (PIL) örnek ve uygulamaları
-Benek etkisi
# -*- coding: cp1254 -*- import Image,ImageDraw,ImageFilter,ImageChops deger = 4 aralik = deger*2 kare = 0 grafik = "S30100072.JPG" tur = "elips" # veya "dikdörtgen kaplama_rengi=(255,0,255) #"#000000" grafik=Image.open(grafik) #grafik açıldı. grafik = grafik.filter(ImageFilter.BLUR) #doğru renk tahmini için yumuşatma etkisi. boyut = grafik.size #grafiğin boyutu belirlendi. yeni=Image.new("RGB",boyut) #çizim yapılacak yeni grafik yazırlandı. boya = ImageDraw.Draw(yeni) #"yeni" grafiği çizim fonksiyonlarının kullanımı için hazırlandı. y_duzlem = list(xrange(deger,boyut[1],aralik)) #y düzlem aralığı belirlendi: # yukarida y düzlemi için liste hazırlandı, x düzleminde # kullanılan xrange fonksiyonu bir kere çalişacaktır fakat # alt dongu her "x düzlemi dongüsünde" tekrar tekrar çalışacaktır # bu da performans kaybi demektir, eski kullanim: ##for a in range(deger,boyut[0],aralik): ## for b in range(deger,boyut[1],aralik): ## ... # performans acisindan range fonksiyonu yerine xrange # fonksiyonu tercih edilmistir -ki bu fonksiyon python 3000'de # "range" olarak gecer. for a in xrange(deger,boyut[0],aralik): #x düzlem döngüsü. for b in y_duzlem: renk=grafik.getpixel((a,b)) if tur=="elips": #...ise elips çizen fonksiyon: boya.ellipse([(a-deger,b-deger),(a+deger,b+deger)],renk) if tur=="dikdörtgen": #...ise dikdörtgen çizen fonksiyon: boya.rectangle([(a-deger,b-deger),(a+deger,b+deger)],renk) yeni.save("/forum/python_imaging_library_pil_C3B6rnek_ve_uygulamalarC4B1/sonuc.jpg",quality=90) # boyanan grafik kaydedildi.orijinal:


Sonuç:
istihza
Re: Python Imaging Library (PIL) örnek ve uygulamaları
osx, eline sağlık. Sayende epey zayıf olduğum bir konuyu öğrenme imkanı elde edeceğim...
Melen
Re: Python Imaging Library (PIL) örnek ve uygulamaları
Python hakkında bilgi sahibi olan yeni birini görmek güzel :mrgreen: Derslerin devamını bekliyoruz. Başka modüllerde dahil :mrgreen:
osx
Re: Python Imaging Library (PIL) örnek ve uygulamaları
Sitelerde belirli yerlere yerleştirilen güvenlik grafiklerini bilirsiniz... bu örnekte rastgele güvenlik grafikleri üreten bir uygulamayı sizlere anlattım.
# -*- coding: cp1254 -*- import Image,ImageDraw,ImageFont,random arkaplan = map(random.randrange,[255,255,255]) # map fonksiyonu ile randrange fonksiyonuna 3 renk # kanali icin (RGB) deger atmasını istedik. # python 3000 için kullanımı; ##arkaplan = list(map(random.randrange,[255,255,255])) grafik = Image.new("RGB",(80,20),(arkaplan[0],arkaplan[1],arkaplan[2]))#arkaplan grafiği uluşturuldu boyama = ImageDraw.Draw(grafik) # yukarıda "grafik" boyama fonksiyonları için hazırlandı font = ImageFont.truetype("courier.ttf",20) #font dosyası,font boyutu # yukarıda font yüklendi, "courier.ttf" font # dosyasının uygulama ile aynı klasörde olması lazım karakterler = random.sample(["1","2","3","4","5","a","c","d","e","f","g","A","B","C"], 4) # yukarıda rastgele dört* karakter seçildi, bu karakterler # for döngüsü ile "grafik"e yazılacak. artan = 0 #karakter arası boşluğu tutan değişken... for x in karakterler: renk = map(random.randrange,[255,255,255]) #her döngüde rastgele renk (R,G,B) boyama.text((artan, 0),x, font=font,fill=(renk[0],renk[1],renk[2])) #Boyama işlemi artan = artan+20 #boşluk grafik.save("sonuc.bmp") # grafik kaydedildi.yukarıdaki uygulamayı geliştirebilirsiniz, konumu da rastgele belirlenir hale getirebilirsiniz mesela...
Sonuç:

Melen
Re: Python Imaging Library (PIL) örnek ve uygulamaları
Denedim ve çalışıyor.
Özgürlükiçin forumunda çıkardıkları e-dergide bi ihtimal django dersleri verebilrim diyen birini görmüştüm. Djangodan da çaksak pythonla güzel bir web sitesi yapardık. Yada başka başka şeyler 

osx
Re: Python Imaging Library (PIL) örnek ve uygulamaları
ayrıca: ilk örnek 2007 yılında yazıldı, açıklamalarsa bugün yazıldı.
Bir metin belgesindegi rakamları grafiğe dökmek:
Bu uygulama ile bir metin dosyasındaki rakamların grafiğini alabilirsiniz, grafiğin genişliği metin belgesindeki rakamların sayısının 10 katı olacaktır.
# -*- coding: cp1254 -*- import Image,ImageDraw dosya = open("/forum/python_imaging_library_pil_C3B6rnek_ve_uygulamalarC4B1/veri.txt","r") #sayilarin bulundugu yazı dosyası okunan = dosya.read() #dosya okunuyor... renk = 230,150,150 #arka plan çizgi rengi yeni = Image.new("RGB",(len(okunan)*10,100),(255,255,255)) # yukarıda çizim yapılacak grafik hazırlanmıştır. # çözünürlük tespiti //x düzlemi //:(len(okunan), # kullanımı:(GRAFİK_TÜRÜ,(ÇÖZÜNÜRLÜK),(ARKAPLAN_RENGİ)) cizim = ImageDraw.Draw(yeni) boyut = yeni.size # oluşturulan grafiğin boyutu alınıyor... # grafiğin arka planındaki kareler çiziliyor: for x in range(0,boyut[0],10): #yatay çizgiler... cizim.line([(x,0),(x,boyut[1])],renk) for y in range(0,boyut[1],10): #dikey çizgiler. cizim.line([(0,y),(boyut[0],y)],renk) l=1 x=0 for a in range(len(okunan)): l=-1*l k0=x,100-(int(okunan[a])*10)#eger okunan "5" ise yükeseklik: "50" piksel k1=x-10,100-(int(okunan[a-1])*10)# yönünün doğru olması için: 100 - (int(okunan[a-1])*10 if a<>0: cizim.line([(k0),(k1)],(0,0,0)) x=x+10 yeni.save("/forum/python_imaging_library_pil_C3B6rnek_ve_uygulamalarC4B1/sonuc.gif") #çizilen grafik gif formatında kaydedildi // png, bmp, jpg...Yukarıdaki kodun iyileştirmeye ihtiyacı var...
veri.txt dosya içeriği:
3141592653589793238462643383279502884Sonuç:
