29 Kasım 2009 Pazar

Simple Binary Encode (Bencode) library and torrent file encoder/decoder

Please download the source files from here...

As some of you might now that there is an encoding style called Bencode, which is capable of encoding four primitive data types, which are;


The popular p2p file sharing protocol BitTorrent also uses this encoding scheme in ".torrent" files which holds the meta data information about the published files. The protocol also uses bencode in the network layer to encode the p2p messages.

I want to share a simple Bencode library written by me in c# language. And also a ".torrent" file reader and generator. Sorry for the missing comments in the code but you're completely free to re-use and change it.

The usage of some core classes are as follows.

  1. BEncodedDocument _doc = new BEncodedDocument();
  2. _doc.LoadDocument(fileName);
These two lines of code simply creates a bencoded document object which can read a bencoded data from a file. You are free to extend this by adding the functionality of reading from another stream object like NetworkStream or FileStream.

BEncodedDocument class has an Elements propoerty which holds the bencoded elements in the file. The Elements property is a collection of one of the following objects referenced by IBinaryElement interface.

  1. BEncodedInt
  2. BEncodedString
  3. BEncodedList
  4. BEncodedDictionary
So, using the BEncodedDocument class you'll be able to load a bencoded document and traverse the data in an object oriented manner.

You may also use BEncodedDocument to read a ".torrent" file. The torrent file is simply a bencoded dictionary. The TorrentInfo class in the Inops.BEncode.TorrentFile project is able to read a ".torrent" file and decode the properties specific to that torrent. These properties represents all the torrent information necessary before starting to download it. Such as the tracker url, files, pieces, InfoHash, etc... Take a look at TorrentInfo class to further investigate these properties.

Hope this small work helps you...

Please download it from here and leave me a comment if you use it.



11 Temmuz 2009 Cumartesi

Wing Tsun İzmir

Sevgili Oktay Sünbül hocamınızın web sitesi hayata geçti.

Si-hing Oktay Sünbül hocamız, Türkiye'nin en büyük wing tsun organizasyonu olan Cifci Wing Tsun Organization(CWTO) üyesi bir eğitmendir.

wingtsun-izmir adresinden, wing tsun konusunda izmirde yaşanan gelişmelerden haberdar olabilir ve hocamızın iletişim bilgilerine ulaşabilirsiniz.

13 Mart 2009 Cuma

Photoshop ile görüntü işleme ödevimin sonucu:)

Daha önceki iletimde sizlerle Multimedia Systems dersi ödevimi yazmıştım. Bu konu başlığı altında sizlere bu ödevi nasi yaptığımı açıklayacağım. Öncelikle size sonucu göstermek istiyorum.


Bu sonucu elde etmek için izlediğim adımlar:

1) Balonlu tabloyu oluşturmak için;

i) image3(televizyonlu resim)açılarak televizyonun içindeki görüntü seçilerek image5 olarak kaydedildi.

ii) image5(balonlu resim) image-> image size’a girilerek çözünürlüğü ve boyutu ana resim olan image1'e uyacak şekilde değiştirildi.

iii) Rectangle tool ile resime kahverengi çerçeve eklendi.

iv) Select->select all ile tüm resim seçilir ve edit->copy ile kopyalanır. Ana resim image1 açılarak edit->paste ile image5 yapıştırılır.

v) Rectangular marquee tool yardımı ile ana resime eklenen image5 seçilir ve free transform uygulanır. Free transform ile balonlu resim scale ayarıyla uygun şekilde boyutlandırıldıktan sonra, rotate ayarıyla döndürüldü ve perspective ve distort ayarlarıyla duvarda asılıymış etkisi yaratıldı.

2) Televizyonu ana resme yerleştirmek için;

i) image3 (televizyonlu resim) açılarak çözünürlüğü ve boyutu ana resime uyacak şekilde değiştirildi.

ii) Select->select all ile tüm resim seçilir ve edit->copy ile kopyalanır. Ana resim image1 açılarak edit->paste ile image3 yapıştırılır.

iii) Rectangular marquee tool yardımı ile ana resime eklenen image3 seçilir ve free transform uygulanır. Scale ayarıyla televizyon ana resimdeki konumuna uygun şekilde boyutlandırıldı.

iv) Televizyonun alt kısmını oluşturmak için Eyedropper tool ile televizyonun arkasındaki kolonlardan renk alındı ve rectangle tool ile bir dikdörtgen çizildi. Dokulu bir yapı oluşturmak için Filter->Texture->Texturizer seçilerek texture Sandstone olarak ayarlandı. Tekrar rectangle tool kullanılarak daha açık bir mavi renkle ortadaki kısım çizildi.

3) Garfield görüntüsünü televizyona yerleştirmek için;

i) image4(Garfield olan resim) açılarak ilk kare crop edildi.

ii) Quickmask modu açılarak Garfield hariç diğer kısımlar beyaz yapıldı.

iii) Image->Adjustments->Black&White seçilerek resim siyah beyaz yapıldı.

iv) Rectangular marquee tool ile resim seçilerek free transform->flip horizontal ile resim yatay olarak ters çevrildi.

v) Horizontal type tool ile konuşma baloncuğunun içine “Give me back my color!”yazısı eklendi.

vi) Resmin çözünürlüğü ana resme uyacak şekilde değiştirildikten sonra kopyalanıp ana resme yapıştırıldı. Free transform ayarları ile tam televizyonun içine gelecek şekilde yerleştirldi.

4) Halıyı resme eklemek için;

i) image2(alimünyum silindir kutular) açılarak en üstteki kutudan dikdörtgen bir parça crop edildi.

ii) Filter->Liquify açılarak Turbulence Tool kullanılarak kıvrımlar yaratıldı.

iii) Kopyalanarak ana resim image 1’e yapıştırıldı. Halının televizyonun altında kaldığı efektini vermek için resim layer olarak backgroundun üstüne eklendi.

iv) Free Transform ayarlarıyla Scale, Rotate, Perspective ve Distort ayarlarıyla halıya doğal bir görünüm verildi.

5) Tabureyi ana resimden çıkarmak için;

i) Patch tool ile taburenin olduğu alan dikkatli bir şekilde seçildi ve o alan boşluk olacak şekilde taburenin sağındaki alanla dolduruldu.

ii) Healing brush tool ile pürüzler giderildi.

6) Ana resme texture eklemek için;

i) Balonların olduğu image5 açılarak büyük balonun olduğu kısmı seçildi.

ii) Image->Adjustments->Black&White ile siyah beyaz yapıldı ve Image->Adjustments

->Selective Color ile çizgiler belirginleştirildi ve Texture1 olarak kaydedildi.

iii) Ana resimde Background Layer’ı seçili iken Filter->Texture->Texturizer seçilerek Load Texture ile Texture1 seçildi. Scaling ve Relief ayarlarıyla istenilen şekle getirildi.

Okuyan herkeze teşekkürler.

Photoshop ile görüntü işleme ödevim...



U.B.E yüksek lisans, Multimedia Systems dersinde yapmış olduğum bir ödevi paylaşmak istedim. Ödevimin konusu 4 resmin değişik filtre ve yöntemler kullanılarak birleştirilmesi ve hedef resmin elde edilmesi. Aşağıda bulunan 4 resmin, yaptığım değişiklikler ile yukarıdaki resme dönüşmesi gerekiyor :))

Resim 1
















Resim 2














Resim 3



















Resim 4