Pardus-Linux.Org - Comments for "Python Imaging Library (PIL) örnek ve uygulamaları" http://www.pardus-linux.org/forum/python-imaging-library-pil-%C3%B6rnek-ve-uygulamalar%C4%B1 Comments for "Python Imaging Library (PIL) örnek ve uygulamaları"trCevap: Re: Python Imaging Library (PIL) örnek ve uygulamaları http://www.pardus-linux.org/forum/python-imaging-library-pil-%C3%B6rnek-ve-uygulamalar%C4%B1#comment-95894 <p>ayrıca: ilk örnek 2007 yılında yazıldı, açıklamalarsa bugün yazıldı.</p> <p><span style="font-weight:bold">Bir metin belgesindegi rakamları grafiğe dökmek:</span><br /> 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.</p> <pre class="bb-code-block"># -*- coding: cp1254 -*- import Image,ImageDraw dosya = open("/rss/forum_yorum/node/13048/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&lt;>0: cizim.line([(k0),(k1)],(0,0,0)) x=x+10 yeni.save("/rss/forum_yorum/node/13048/sonuc.gif") #çizilen grafik gif formatında kaydedildi // png, bmp, jpg... </pre><p> <span style="font-size:48px"><span style="color:#FF0000">Yukarıdaki kodun iyileştirmeye ihtiyacı var...</span></span></p> <p>veri.txt dosya içeriği: <br /> <span class="geshifilter"><code class="text geshifilter-text">3141592653589793238462643383279502884</code></span></p> <p><span style="font-weight:bold">Sonuç:</span><br /> <img src="http://img134.imageshack.us/img134/8013/sonucup9.gif" alt="" class="bb-image" /></p> Sun, 25 Sep 2011 22:06:30 +0000osxcomment 95894 at http://www.pardus-linux.orgCevap: Re: Python Imaging Library (PIL) örnek ve uygulamaları http://www.pardus-linux.org/forum/python-imaging-library-pil-%C3%B6rnek-ve-uygulamalar%C4%B1#comment-95892 <p>Sitelerde belirli yerlere yerleştirilen güvenlik grafiklerini bilirsiniz... bu örnekte rastgele güvenlik grafikleri üreten bir uygulamayı sizlere anlattım.</p> <pre class="bb-code-block"># -*- 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. </pre><p> yukarıdaki uygulamayı geliştirebilirsiniz, konumu da rastgele belirlenir hale getirebilirsiniz mesela... </p> <p><span style="font-weight:bold">Sonuç:</span><br /> <img src="http://img230.imageshack.us/img230/4149/sonuciq0.png" alt="" class="bb-image" /></p> Sun, 25 Sep 2011 22:06:23 +0000osxcomment 95892 at http://www.pardus-linux.orgCevap: Re: Python Imaging Library (PIL) örnek ve uygulamaları http://www.pardus-linux.org/forum/python-imaging-library-pil-%C3%B6rnek-ve-uygulamalar%C4%B1#comment-95889 <p>-Benek etkisi</p> <pre class="bb-code-block"># -*- 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("/rss/forum_yorum/node/13048/sonuc.jpg",quality=90) # boyanan grafik kaydedildi. </pre><p> <span style="font-weight:bold">orijinal:</span><br /> <img src="http://img140.imageshack.us/img140/6666/s30100072as4.jpg" alt="" class="bb-image" /><br /> <span style="font-weight:bold">Sonuç:</span><br /> <img src="http://img137.imageshack.us/img137/6789/sonucpf6.jpg" alt="" class="bb-image" /></p> Sun, 25 Sep 2011 22:06:18 +0000osxcomment 95889 at http://www.pardus-linux.orgRe: Python Imaging Library (PIL) örnek ve uygulamaları http://www.pardus-linux.org/forum/python-imaging-library-pil-%C3%B6rnek-ve-uygulamalar%C4%B1#comment-95893 <p>Denedim ve çalışıyor. <img src="/sites/all/modules/smileys/packs/Roving/cool.png" title="Cool" alt="Cool" class="smiley-content"/gt__Oumlzguumlrluumlkiccedilin_forumunda_ccedil/index.html"/sites/all/modules/smileys/packs/Roving/lol.png" title="Laughing out loud" alt="Laughing out loud" class="smiley-content"/gt_ltimg_src/index.html"/sites/all/modules/smileys/packs/Roving/lol.png" title="Laughing out loud" alt="Laughing out loud" class="smiley-content"/></p> Mon, 02 Jun 2008 14:14:17 +0000Melencomment 95893 at http://www.pardus-linux.orgRe: Python Imaging Library (PIL) örnek ve uygulamaları http://www.pardus-linux.org/forum/python-imaging-library-pil-%C3%B6rnek-ve-uygulamalar%C4%B1#comment-95891 <p>Python hakkında bilgi sahibi olan yeni birini görmek güzel :mrgreen: Derslerin devamını bekliyoruz. Başka modüllerde dahil :mrgreen:</p> Mon, 02 Jun 2008 11:05:25 +0000Melencomment 95891 at http://www.pardus-linux.orgRe: Python Imaging Library (PIL) örnek ve uygulamaları http://www.pardus-linux.org/forum/python-imaging-library-pil-%C3%B6rnek-ve-uygulamalar%C4%B1#comment-95890 <p>osx, eline sağlık. Sayende epey zayıf olduğum bir konuyu öğrenme imkanı elde edeceğim... <img src="/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content"/></p> Mon, 02 Jun 2008 10:09:37 +0000istihzacomment 95890 at http://www.pardus-linux.org