Veritabanında Resim Saklamak ve Kullanmak

Posted: 4th Aralık 2010 by Arda Altay Abaka in C#, WPF
Tags: , , , ,

Merhabalar..

Geçenlerde karşılaştığım bir sorun üzerine bu yazıyı yazma gereği hissettim. Başlıkta da yazdığım üzere resimleri eğer ısrarla(!) veritabanında tutmak istiyorsak dikkat etmemiz gereken bazı şeyler var. Özellikle o uygulama bir WPF uygulaması ise.. Winking smile

Öncelikle ben bir UploadControl aracılığıyla ( belki onun için yazdığım UserControl’u de koyarım bir ara buraya) resmin yolunu almak istiyorum ve bunu bir şekilde byte dizisine çevirerek veritabanında kaydetmem gerekiyor. Bu arada benim bildiğim, resimleri veritabanında 3 şekilde tutabiliyoruz. Ama bunun en verimlisi ve en az yer kaplayanı kesinlikle binary şeklinde kaydetmek. O yüzden bu konuyu tartışmıyorum.Nerd smile

İki tane static method yazıp her yerde kullanabilmek en mantıklısı bana göre. Bunlardan biri byte[] , diğeri ise ImageBrush şeklinde dönüş değerine sahip olacak.

Elimdeki resmi binary’e çevirmek için şöyle bir method yazarım;

public static byte[] ImageToBinary(string path) { FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read); byte[] b = new byte[fileStream.Length]; fileStream.Read(b, 0, (int)fileStream.Length); fileStream.Close(); return b; }

Daha sonra da gerekli yerlerde veritabanından çektiğim binary data’yı projemde kullanmak üzere bir resime çevirmek için;

public static ImageBrush BinaryToImage(byte[] binaryData) { if (binaryData == null) return null; BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.CreateOptions = BitmapCreateOptions.None; bi.CacheOption = BitmapCacheOption.Default; bi.StreamSource = new MemoryStream(binaryData); bi.EndInit(); ImageBrush image = new ImageBrush(); image.ImageSource = bi; image.Stretch = Stretch.Uniform; return image; }

Yukarıdaki methodda ImageBrush kullanmamın sebebi WPF projelerinde rahatça kullanılıbiliyor olması aslında. Çünkü herhangi bir kontrolün background özelliğine ‘image’ dönüş değerini verebiliyoruz. Eğer WPF veya Silverlight üzerinde çalışıyorsak System.Drawing.Image ‘den uzak durulmalı. Confused smile

Görüşmek üzere.

…ve MSP Seçildim =)

Posted: 8th Eylül 2010 by Arda Altay Abaka in Genel
Tags: ,

Bu senenin MSP‘leri belli oldu =)

Üniversitemden 3 kişi olmak üzere Türkiye’den toplam 65 kişi Microsoft Student Partner olmaya hak kazandı.

Buradan MSP olan tüm arkadaşlarımı tebrik ediyorum. Heyecanlı ve aksiyon dolu bir yıl olması dileğiyle :D

MSP Başvurusu ve Imagine Cup 2011

Posted: 29th Ağustos 2010 by Arda Altay Abaka in Genel
Tags: ,

Merhabalar..Nihayet MSP olmak için başvurumu yaptım..Bu da video Linkim =)  MSP Başvurum

Bu sene Imagine Cup 2011′e Teknik Üniversitede oluşturduğumuz ve aramızda eski MSP Onur Varol’un da :D olduğu 4 kişilik bir takım kurduk ve Software Design dalında yarışmayı düşünüyoruz. Umuyorum ki Türkiye elemeleri bizim açımızdan şanslı geçer ve Türkiye’yi New York’da temsil etme şansına sahip oluruz..