Menampilkan Gambar Dari Database di ImageWebControl

Ini kasus yang didapat oleh temen-temen dari projek “Semen”. Di aplikasi yang mereka bangun, ada modul tentang informasi para karyawan termasuk foto karyawan tersebut. Tetapi di modul tersebut, foto tidak disimpan dalam folder tertentu, tapi disimpan dalam database dengan tipe blop.
Permasalahan muncul saat aplikasi menampilkan data karyawan termasuk fotonya di ImageWebControl. Control ini hanya menyediakan property membaca image berdasarkan lokasi url, bukan dari database. Lalu bagaimana solusinya?

Solusi berikut diperoleh dari rekan dari CodeProject. Dia juga mengalami kasus yang sama. Triknya adalah, image akan ditampilkan di satu page khusus, page kosong yang hanya untuk menampilkan image. Lalu dari page lain yang terdapat ImageWebControl, panggil url dari page pertama.

Pertama, buat page untuk menampilkan image, sebut saja ImageLoader.aspx
Masukkan kode berikut di PageLoad method

if (Request.QueryString["Id"] != null )
{
   int Id = Convert.ToInt32(Request.QueryString["Id"].ToString());
   byte[] image = null;
   //You will have to add your connection information and grab the image from the database
   // ToDo: Load binary image into image variable;
   if (image!=null)
   {
      MemoryStream ms = new MemoryStream(image);
      Bitmap b = new Bitmap(Image.FromStream(ms));
      Response.ContentType = "image/jpeg";
      b.Save(Response.OutputStream, ImageFormat.Jpeg);
   }
   else
   {
      Bitmap b = new Bitmap(Image.FromFile(Server.MapPath("images/noimage.png")));
      Response.ContentType = "image/jpeg";
      b.Save(Response.OutputStream, ImageFormat.Jpeg);
   }
}
else
{
   Bitmap b = new Bitmap(Image.FromFile(Server.MapPath("images/noimage.png")));
   Response.ContentType = "image/jpeg";
   b.Save(Response.OutputStream, ImageFormat.Jpeg);
}

Lalu di page tempat melakukan binding di ImageWebControl, set property image url ke Imageloader.aspx dan tambahkan query string id.

Image1.ImageUrl = "Imageloader.aspx?Id=1";

Perlu diingat, cara ini mungkin bukan yang terbaik. Jika terlalu banyak image yang di load, kemungkinan akan berpengaruh pada performance hits.

Happy coding.
Thanks for Disgyza from CodePoject

Baca juga yang ini: Menampilkan gambar dari database – 2

About Yuniar

Penulis sekarang lebih banyak bekerja menggunakan teknologi Microsoft .NET secara umum dan TIDAK lagi menggunakan aplikasi MapXtreme.net dari MapInfo. Karena itu mohon maaf, jika pertanyaan-pertanyaan mengenai MapXtreme sudah tidak bisa saya jawab lagi.

Posted on 2 Oktober 2009, in ASP.net and tagged , , , . Bookmark the permalink. 4 Komentar.

  1. Selain dengan cara kode script apa ada alternatif yang lain ?

    • Bagaimana apabila kami mempunyai titik koordinat (GIS) yang ada pada MAP INFO 7.5 mau kita link ke dalam salah satu form No.Gardu yang ada pada aplikasi microsoft access 2007. Tolong bisa diberikan solusi untuk bahasa dalam bentuk visual basic sehingga ketika di klik common button pada microsoft access 2007 keluar koordinat pada MAP INFO 7.5. atas bantuan yang diberikan kami ucapkan terima kasih.

  2. mas, bisa minta step by step nya gak? biar bisa di pahamin lebih dalam.
    saya newbie.🙂 thx

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: