PictureBox Kullanimi – Veritabanina Resim Eklemek

Image Özelligi :

image özelligine atama yapilir.

ImageLocation Özelligi :

Dosya yolu belirtirken 2 tane \ kullanmalisiniz.

pictureBox1.Image = Image.FromFile("C:\\a.jpg");
pictureBox1.Image = Image.FromFile(@"C:\a.jpg");

//digerinden farki : internetten bir url de verebilirsiniz..
pictureBox1.ImageLocation = "C:\\a.jpg";

Ayrica arayüz üzeriden de resim yolunu belirtebilirsiniz.Bunun için pictureboxa bir kez tiklayip ve sag üst ok isaretine tiklayip ardindan choose image ye tiklayip resimlerinizi ekleyebilirsiniz ve resimlerinizi pictureboxda daha düzenli bir sekilde durdurmak istiyorsaniz, bunun için pictureboxa bir kez tiklayip ve sag üst ok isaretine tiklayip ardindan size mode denilen yapiyi istediginiz gibi degistirebilirsiniz.

Neler Bu özellik?

  • normal: resim picture box üzerinde normal bir sekilde durur haliyle (picture box in resimden küçük olmamasina dikkat ediniz)
  • stretchImage : resim ne kadar büyüklükte olursa olsun picture boxin boyutunu alicaktir..
  • centerImage: resim picture box içerisinde ortalanir. (picture box in resimden küçük olmamasina dikkat ediniz)
  • autosize: resminizin büyüklügü ne olursa olsun pictureboxiniz o büyüklüge ulasir..
  • zoom: resminiz picturebox içerisine odaklanir. (yakinlastirilir).

image özelligini, farkli birçok uygulamada kullanabilirsiniz. Umarim verdigim ders faydali olmustur. Sorulariniz ve yorumlariniz için sayfadaki yorum ekle kismini kullanabilirsiniz.

Veri Tabanina Resim Eklemek

  • Bazen veritabanina resim eklememiz gerekir.. nerelerde karsilasilabilir denilince gerek sirketteki personel resimleri gerek okuldaki ögrencilerin fotoraflarini tutabiliriz..
  • Veritabaniniz MsSql Server ise tablonuzun veri tipi "images" olmasi gerekiyor. Access veritabanini kullaniyor iseniz "ole nenesi" olmasi lazim.. bunlari ayarladiktan sonra kodlarimi yazmaya baslayabilirz ..
public static void Kaydedermisin(string KisiAdi, string KisiSoyadi, string ResimYolu)
{
SqlConnection con = new SqlConnection("Server=LocalHost; Database= Veritabanim; Integrated Security=True ");

con adinda bir SqlConnection nesnesi yaratiyoruz burada bir MsSql Server veritabanina baglanicagimizi ve buna göre bilgisayarimizdaki hangi veritabanina " connection String " bölümüne yaziyoruz.. "server=LocalHost "ile baslayan alan..

SqlCommand com = new SqlCommand("Insert Into Table1 (Adi,Soyadi,Resmi) Values (@ad,@soyad,@resim)", con);

com adinda bir SqlCommand Nesnesi yaratiyoruz burada MsSql Server veritabaninda bir komut çalistiricagimizi, hangi tabloda hangi kolonlara ve hangi database ' e veri aktaricagimizi söyledigimiz alandir..

  1. "Insert Into" Deyimi bir kayit ekliyicem hazir ol demek..
  2. "Table1" Alani ise hangi tabloya kayit ekliyecegimizi söyledigimiz yerdir..
  3. "(Adi,Soyadi,Resmi)" Alani ise "Table1" tablosunun hangi alanlarina veri ekleyecegimizi söyledigimiz yerdir..
  4. "Values (@ad,@soyad,@resim)" Alani ise "(Adi,Soyadi,Resmi)" Alanlarina veri atayacagimiz için formoliteden bu parametreleri veriyoruz bunu bir degisken gibi düsünebiliriz assagida parametrelere deger atiyacagiz ve bu degerleri bu sorgu gidip alan adlariyla karsilastirip ekliyecek burda siralamaya dikkat edelim arkadaslar..
Com.Parameters.AddWithValue("@ad",KisiAdi);

bildiginiz gibi suan bu kodlari bir void metodun içine yaziyoruz metodun içindeki "KidiAdi" parametresine disardan veri atadigindan o veriyi orada yakalayip @ad parametresine atiyoruz..

com.Parameters.AddWithValue("@soyad",KisiSoyadi);

yukardaki mantigin aynisi arkadaslar..

resmi parametresine deger atayabilmek için verilen resim yolundaki nesneyi byte[] dizisine cevirmek gerekiyor.. bunu için ;

Image img = Image.FromFile(ResimYolu);

resimimizi burada yakaladik..yukaridaki img nesnesini bir byte[] dizisine aktarmamiz gerekiyor..

MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
com.Parameters.AddWithValue("@resim",ms.ToArray());

yukarida byte dizisine aktardikdan sonra artik @resim parametresine atama yapabiliriz..

com.Connection.Open();

yukarida "com" diye yarattigimiz "SqlCommand" nesnesinin "con" isimli yarattigimiz "SqlConnection" nesnesindeki Connection Stringe yazilmis olan veritabani ile baglantiyi açtik..

com.ExecuteNonQuery();

yukarida "com" diye yarattigimiz "SqlCommand" nesnesinin içindeki Sorgu cümlecigini "Ms Sql Server" Veritabaninda Çalistirdik..

con.Close();

"con" isimli yarattigimiz "SqlConnection" nesnesindeki Connection Stringe yazilmis olan veritabani ile baglantiyi Kapattik… ve veritabanina resim ekleme islemi bitmistir arkadaslar..

Yukarda yazmis oldugumuz veritabanina resim ekleme metodunu çagirmak için..

Kaydedermisin("Hakki","Eser","C:\\Resim1");

Umarim verdigim ders faydali olmustur. Sorulariniz ve yorumlariniz için sayfadaki yorum ekle kismini kullanabilirsiniz.

–Soru üzerine Mehmet Sabri KUNT tarafindan eklenmistir.

Merhaba Mirza sanirim istedigin örnek asagidaki gibi olacak.

Ilk Açildiginda ekranda iki adet resim görünüyor.

listbox

Birinci resim tiklandiginda ise asagidaki gibi resmi formun arkaplanina basiyoruz.

listbox .

Umarim isine yaramistir.

Proje kaynak kodlarini buradan

Exe dosyasini buradan indirebilirsin.

Tags:

50 thoughts on “PictureBox Kullanimi – Veritabanina Resim Eklemek

  • Picturebox1 deki resmi Picturebox2 ye nasıl yollayabilirim?

  • abiii allah senden razı olsun allah ne muradın varsa versin allah cennetine kabul eylesin çolugunu çoçugunu tüm kötülüklerden korusun 3 gündür ugraşıyorum şu işe sonunda sayende buldum çok çok çooook teşekkür ederim…

  • merhaba Benim ?öyle bir sorunum var. okuldaki bilgisayarda yapmy? oldu?um c# projesyny database kullanarak yaptym ve evde devam etmek istiyorum.  hazyrlamy? oldu?um database backup olarak aldym ve kendy bylgysayaryma restore ettym sonra projeden de yapmys oldugum genel clasyndan data source ysmyny kendy blgysayarymdakini yazdym user namede ayny sekylde yaptym fakat kendy bylgysayarymda syfre olmadygy ycyn sqlde onu yazmadym. buraya kadar dogru yaptygymy dusunuyorum. fakat proje yy calystyrdygymda ise benden dyger claslara atadygym sqlconnectiyn kodunun içinde yazmys oldugum genel clasyndaky database baglanylamyyor diyor. nerede yanlys yaptym lütfen en acilinden bilgilendirimisiniz?

  •      Merhabalar,

         C# proje ödevi kapsamynda Resim ?ifreleme ödevini almy? bulunmaktayym.  
         PictureBox a resim yükleyebiliyorum. Yalnyz daha sonra resim piksellerine nasyl ula?aca?ymy bilmiyorum. Hocamyz Picturebox a resmi buton yardymyyla almamy istedi. Netten bakty?ymda “OpenFileDialog” komutuyla kar?yla?tym. Ama bu komutun yanynda “bitmap” ady verilen yapyda kullanylyyor. Hangisini kullanmam gerek? Ayny zamanda pikselleri nasyl diziye aktaraca?ym?
          Bunun yanynda resmi puzzle ?eklinde parçalamam gerekiyor. Daha sonra herbir puzzle y kendi içinde kary?tyraca?ym (iki tane for döngüsü kullanylacakmy?). ?ifrelenmi? resmin normal görüntüsü istendi?inde ise (2. butona basyldy?ynda) 2. bir pictureBox a beyaz tonlamalarla gelecekmi?(yani resmin ilk yüklememde ki gibi net olmamasy gerekiyor).  
         Bana yol gösterebilirseniz çok sevinirim.
         Saygylarymla
  • acil yardim lütfen.sorum su.farkli üç seçenegim var radio button olarak.bu butonlarin her birine tikladigimda yandaki resmin degismesini istiyorum tikladigim butona bagli olarak.bunu nasil yazabilirim

  • bence  veritabanina resmin yolunu kaydetmek daha mantikli. eger güvenlik gibi sorunlarin varsa o zaman veritabanina kaydedebilirsin. sanirim resmin yolunu kaydederken c:\klasor\… seklinde yaziyorsun. bunun yerine direk olarak programin bulundugu klasor içinde bir yere kaydet. boylece program içinde resmin yolunu bulurken yine programin bulundugu klasor uzerinden giderek sorunsuz ulasabilirsin

  •  

    merhaba..

    access e resim kaydederken resmin yolunumu kaydetmek daha mantikli yoksa OLE nesnesi olarakmi kaydetmek daha mantikli.

    ben yolunu kaydederek bitirdim projeyi fakat her bilgisayarda görünmüyo resimler.hangi bilgisayardan eklediysek o blg da çalisiyor,bunun bi çözümü varmi acaba…

     

  • mrb yaa ben veri tabanina resim atmak ve o resmi çekmek istiyorum visual stdio da C# ile bunu nasil yapabilirim lüften bana yardimci olun 

  • arkadaslar bana c# zamanli kapama programi lazim yard. olabilirmisiniz.

  • caner merhaba

    bu makale windows form için yazilmis. sanirim sen asp.nette yapmak istiyorsun. bunun için FileUpload nesnesini kullanmalisin. http://msdn.microsoft.com/en-us/library/aa479405.aspx adresinden nasil kullanildigina bakabilirsin.

  • Makalede bahsetmis oldugum yolla…  🙂

  • Hocam sorum su. Peki bir üyelik sisteminde bir üye hangi yolla upload edebilir fotografini? Cevaplarsaniz sevinirim.Tesekkürler 

  • MemoryStream ms = new MemoryStream();

    img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

    com.Parameters.AddWithValue("@resim",ms.ToArray());

     

    MemoryStream[] ms = new MemoryStream[100];
    img2[i] = Image.FromFile(dosyayolu[i]);                       
    img2[i].Save(ms[i], ImageFormat.Bmp);

    buhale dönüstürürsek sayet,

    com.Parameters.AddWithValue("@resim",ms.ToArray());

    burdaki kodumuz ne olmali?

  • Merhaba… Ben accessden visual basic’de picturebox a resim almak istiyorum. bunu nasil yapabilirim? simdiden tesekkürler…

  •  slm arkadaslar yardim ?

    visual basicde forma bi resim ekleyip çalisdirdigimda o resmi sabit bi noktadan sürekli kopyalatip sayfa içerisine mouse ile nasil tasitabilirim ? picture box sabit kalacak tiklayip sürükleyince çogalacak ? gi_ci@live.com bu adresden yardim edebilirsiniz 

  • arkadaslar ben picturebox a 2 tane yatay ve dikey olarak kenarçubugu (scrollbar) ekledim ama çalistiracak kodlara ihtiyacim varrrr..

  • eser.hakki@hotmail.com bu ilk soru 2. si ise yermek için degil bulmak için inceleyin kodu.

  •  eposta yayinlanmayacaksa neden koydunuz

     

     

    birde verdiginiz kodda veritabanina ait bir kod parçasi bulunamadi

  •  Murat pictureBox1.Image=Image.FromFile(Application.StartupPath+"/ResimAdi.jpg");

    Application.StartupPath = debug içerisindeki yolunu verir. 🙂 kolay gelsin

  • murat can depug nedir, tam olarak ne istiyosun  

  • resmi depug’a kopyalayip nasil picturebox’un içine atabilirim acaba 

  • Selected Row undaki resmi okuyacaksin seçildigi zaman diyorsan selected event ine gidip e.Row.SelecTindex deyip row daki byte lari alicaksin byteleri makalede gösterdigim gibi Image a convert edip pictureboxa atama yapicaksin mantik bu 🙂

  • ellerine saglik hocam. benim access veritabanimda bir tablo var ve ole nesnesi olarak her satirda bir resim var. bu tabloyu .net te gosteriyorum fakat resimleri nasil gorebilirim. her satiri sectigimde database de ona ait resmi gormek istiyorum… 

     

     grdaraba.SelectionMode = DataGridViewSelectionMode.FullRowSelect;  ile full satir secme islemini yaptim… resimleri picbox ta nasil gorebiliriz acaba?

  • Rica ederiz eger istediginiz birsey olursa konuyla ilgili makalenin sonuna ekleme yapabilirim diger arkadaslarin isteklerini unutmadim fakat projelerin 15 20 dk da bitibilecek projeler olmadigi için malum is hayati yorgunluktan vakit bulamiyorum açikcasi.. ama su siralarda mutlaka onlara bakicam iyi günler.. bol yorumlar 🙂

  • SagoLn Tesbeskür edrerimmm

  • Ferhat merhabalar senin yerinde olsam su yöntemi izlerdim resimleri projemin içinde olusturduum örn bin/debug klasöründe olusturduum resim adli klasöre atardim daha sonra o resmin yolunu veritabanina atardim resimYolu kolonu açardim veritabanindada mis gibi olurdu nerden okumak istiyorsam oraya resmin yolunu verdimmi tmmdir mesela sen x kisine ait resmi pictureboxda göstermek istiyorsun combobaxdan x i seçtin sorgu =..

    = > //  Select ResimYolu From kumas_planlama WHERE KumasID = X

    gibi olur gelen resim yolunu Execute Reader le veya Execute Scalarla okuyup Picturebox in image location özelligine atama yaptiricaksin bukadar.. kolay gelsin 🙂

    Hakki Eser

    eser.hakki@hotmail.com

  • Merhabalar,

    konunuz aradigim bilgiye çok yakin yardimci olma ihtimaliniz yüksek oldugu için sormak istedim,

    önce malzemeler = yazilim ortami VisualStudio2008 , dil VB.NET , veritabani MSSQL

    bir projem var sirkette yaptigim üretimlerin takibi ile ilgili,form üzerinde 32 adet textbox var bu textbox lara db den verileri çekip UPDATE ,INSERT,DELETE islemlerini yapabiliyorum sorunum su ayni db de birde resim adinda bir COLUMN var buraya yazdigim dosya yolunu(resim) picturebox ile gösteremiyorum.izledigim kod yolu = PictureBox1.ImageLocation = "kumas_planlama.resim where model=’" + TextBox1.Text + "’"

    saniyorum önce bir string atamaliyim ama tam çözemedim yardimci olursaniz sevinirim.Mehmet Gözüala arkadasim ile tam olarak ayni islemi yapmak istiyorum.

  • Hakki 🙂  Buket in proje gerçekten agir bir seye benziyor. Baksana bilgisayardan tarama yöntemiyle çekicek fln… 

  • Serhat arkadasimin istedigi projeyi kodlarini makaleye ekleyip anlaticam.. Buket senin projen biraz agir açikcasi 🙂 ama çok güzel bi proje üzerinde çalismak çok isterim bunun için "Graphics" nesnesi üzerinde çalismak gerekiyor Brush nesnesi falanda giricek isin içine bunuda yapip açikcasi makaleye eklemek istiyorum beraber çalismak istersen mail adresimden "eser.hakki@hotmail.com" iletisime geçebilrsin açikcasi heycan verici bi proje :d ins. senin içinde öyledir umarim zorunluluktan yapmiyorsunuzdur sonuçta para, ödev gelip geçici seyler ama isi zevke dökmek sizin elinizde.. bu 2 projeyi yapip makaleye ekliyip anlaticam ins.. iyi günler.

  • Merhaba arkadaslar benim bi projem var  ama nasil yapacagim hakkinda bi fikrim ve bilgim yok. Yardimci olursaniz çok sevinirim. Projem verilen fotografi tarama yöntemiyle pc den çekip Karikatüre çevirme programi.. C# dilinde yapilacak.. Sizce nasi yapabilirim? ne kullanabilirim?

  • merhabalar benim sorum su form çalisirken picturebox üzerine sag tiklayip istenilen resmi yüklicek hocam yardimci olursaniz çok sevinirim yanliz kodlar visual basice göre ve benim gibi neyi nereye yazacagini tam bilmeyen biri için bu seyleri belirtirseniz çok iyi olur. iyi çalismalar

  • web kamerasindan resmi capture etmek icin windowsun WIA apilerini kullanabilirsin.

    konu ile ilgili detayli ornek bu linke mevcut

  • Hocam merhaba benimde küçük bir sorum olacak

    ben basit bir personel takip programi yazmak istiyrum

    ad soyad resim ben picturebox resimi bilgisayardaki web kamerasindan resim çektirip eklettirmek istiyorum. bunu nasil yapabiliriz bu konu hakkinda yardimci olabilirmisiniz.

     

  • sorunun çözülmüs olmasina sevindim. kolay gelsin

  • Çok tesekkür ederim msk ,seninde soyledigin gibi sekilleri picturebox’in grafigi uzerinde yaptigim için olmuyormus,senin verdigin kodla sorun halloldu .cok cok tesekkür ederim …

  • merhaba powerceza

    galiba Graphic olarak picture box a ait olani kullaniyorsun.

    Graphic g = picturebox1.createGraphics() seklindemi kullaniyosun?

    Bir picture box içine resim çizmek ve bu resmi kaydetmek için pictureboxin içindeki resmin çizim alanini kullanman lazim.

    bunun için :

    Bitmap bmp = new Bitmap(pictureBox1.Image);
    Graphics g = Graphics.FromImage(bmp);            
    g.DrawLine(new Pen(Color.Red, 1), mouseDownPoint, e.Location);
    pictureBox1.Image = bmp;

     

    seklinde kodlarini duzenlersen kaydetme isleminde degisiklikleri dosyada görebilirsin.

  • merhaba,yapmakta oldugum programda bilgisayardan openfiledialog ile resmi alip pictureBox içine atiyorum sonra bu resim uzerinde daireler kareler felan çizebiliyorum ama savefile dialog ile resmi kaydedince benim yapmis oldugum kareler daireler felan görünmüyor sadece resmin orjinalini kayit ediyor.ben bu kareleri ve daireleride resme dahil ederek nasil kayit edebilirim ?

    Kullandigim savefile dialog söyle ama istedigim seyi yapmiyor……

    SaveFileDialog save = new SaveFileDialog(); save.InitialDirectory= “C:\\”;
    save.Filter = “Bitmap files (*.bmp)|*.bmp|JPG files (*.jpg)|*.jpg|GIF files (*.gif)|*.gif”;
    save.FilterIndex = 3;
    save.RestoreDirectory = true;

    if(save.ShowDialog() == DialogResult.OK)
    {
    pictureBox1.Image.Save(save.FileName);
    }

    Öneri olarak bazi yerlerde autoredraw=true; yap diyolar ama programda boyle bir komut yok…

    yar

  • kardes allah razi olsun ihtiyacim vardi

  • Yardimci olabildigimize sevindim. Kolay gelsin

  • evet.istedigim aynen bu sekildeydi.Cok saolsin.Emegine saglik

    yardimlariniz icin tesekkurlerr….

  •  Mirzacigim kafam çok dolu ben ne yazdigimi biliyomuyum orya :)listboxa resim eklemek ne oluyo ya muhah okuyunca kendim güldüm 😀

  • Merhaba Mirza, senin için bir örnek hazirlayip makalenin en altina ekledim. Umaraim istedigin budur.

    Iyi Günler.

  • ilk once ilgilendigin icin tesekkur ederim.Saolsinn.ama benim istedigim o sekilde deill :)Picturebox’in icindeki resimi formun arkaplanina atmak istiyorum.Örnegin;formumda 4 tane picturebox var diyelim. bu pictureboxlara tikladigimda,pictureboxin icindeki resim’i formun arka planda gormek istiyorumm .

    Tesekkurler yardimlariniz icinn.

     

  • Mirza senin yapman gereken

    1.Forma 1 listbox koy.

    2.Listboxa resim ekle.

    3.Form design yani tasarim asamasindayken çift tiklayarak click event’ ine git.(butondaki gibi).

    4.Açilan Kod sayfasina Assagidaki kodu ekleyiniz.

    5.//this.BackColor = Color.Black;

    6.F5’e basip programinizi çalistirabilirsiniz.

    Kolay gelsin.

  • arkadaslar benim bir sorum olucak.c# ‘da formun uzerine iki adet picturebox koyup bu pictureboxlara tiklandiginda formun arka planinin degismesini istiyorum :D.bana bir yardimci olursaniz sevinir.iyi calismalar

  • kodlar asagidan yukari dogru

  • com.Parameters.AddWithValue("@resim",ms.ToArray());

                com.Connection.Open();

                com.ExecuteNonQuery();

    com.Connection.Open();

                com.ExecuteNonQuery();

       con.Close();

    }

  • com.Parameters.AddWithValue("@ad",KisiAdi);

     

    com.Parameters.AddWithValue("@soyad",KisiSoyadi);

     

                //resmi parametresine deger atayabilmek için verilen resim yolundaki nesneyi byte[] dizisine cevirmek gerekiyo

     

                Image img = Image.FromFile(ResimYolu);

     

                //yukaridaki nesneyi bir byte[] dizisine aktarmamiz gerekiyo

     

                MemoryStream ms = new MemoryStream();

     

                img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

  • veritabanina resim kaydetme ayri bi olay :)) ama anlatayim mail degilde direk burda söylemek istiyorum  Veritabanin ms sql server ise tablonun veri tipi "images" olmasi gerekior acces ise ole olmasi lasim bunlari ayarladiktan sonra kodlar assagidaki gibidir

    public static void Kaydedermisin(string KisiAdi, string KisiSoyadi, string ResimYolu)
    {
                SqlConnection con = new SqlConnection("Buraya connection string");

                SqlCommand com = new SqlCommand("Insert Into "//buraya tablo ismi örnek:Table1"(tablodaki kolon adlari//Adi,Soyadi,Resmi) Values (tablodaki kolon adlarina atama yapmak için parametreler//@ad,@soyad,@resim)", con);

  • hocam benim sorunum söyle, formumda ki picturebox a çafirdigim resme kaydet dedigim zaman resimin de diger girdigim bilgilerle beraber database kayit olmasini istiyorum yine ayni sekilde dormda arama yaptigim zaman ilkgili kayda ulastigimda resimin de pictureboxa gelmesini istiyorum nasil saglayabilirim mail yoluyka yardimci olursaniz çok çok çok sevinirim

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir