Base64 Encoding, binary verileri metne dönüştürerek saklamaya yarayan bir tekniktir. Buna en güzel örnek bir fotoğrafın encode edilerek veritabanı içinde saklanması gösterilebilir.
Bu makalede aslında 2 farklı işlem gerçekleştireceğiz. İlk adımda bir görseli Base64 Encoding ile string’ e çevirip, ikinci adımda ise elimizdeki Base64 string’ i tekrar görsel dosyası haline getirerek görüntüleyeceğiz.
Ekte proje dosyalarını da bulabileceğiniz bu çalışmada, önce OpenFileDialog ile bir görsel seçiyoruz.
Bu görseli ilk PictureBox’ a yüklüyoruz, Base64 çevrimini yapıyoruz ve üretilen stringi TextBox’ a yazıyoruz. Daha sonra da elimizde Base64 string’ i tekrar decode ederek görsel dosyasına çeviriyoruz.
Kaynak kodları aşağıda bulabilirsiniz;
using System; using System.Drawing; using System.IO; using System.Windows.Forms; namespace ImageToBase64 { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private void btnSelectFile_Click(object sender, EventArgs e) { // OpenFileDialog için seçenekler belirleniyor. // Parameter Settings for File Dialog ofdSelectImage.Filter = "Tüm Dosyalar |*.*| Jpeg Görseller|*.JPEG,*.JPG,*.jpg,*.jpeg| PNG Görseller|*.png"; ofdSelectImage.FilterIndex = 1; ofdSelectImage.SupportMultiDottedExtensions = true; ofdSelectImage.Multiselect = false; if (ofdSelectImage.ShowDialog() == DialogResult.OK) { string secilenDosya = ofdSelectImage.FileName; // PictureBox' ta görsel yükleniyor. // ımage loading to Picturebox pbxLoadedımage.Image = Image.FromFile(secilenDosya); pbxLoadedımage.SizeMode = PictureBoxSizeMode.Zoom; // Görsel' in Base64 çevrimi yapılıyor. // Image converting to base64 byte[] imageBytes = System.IO.File.ReadAllBytes(secilenDosya); string base64Formatted = Convert.ToBase64String(imageBytes); txbBase64Code.Text = base64Formatted; // Base64 kod' dan görsele dönüştürme yapılıyor // Base64 code is converting to image byte[] base64Bytes = Convert.FromBase64String(base64Formatted); MemoryStream memoryStream = new MemoryStream(base64Bytes); pbxConvertedImage.Image = Image.FromStream(memoryStream); pbxConvertedImage.SizeMode = PictureBoxSizeMode.Zoom; } } } }
Proje dosyalarını ise aşağıdaki linkten indirebilirsiniz.
Base64 hakkında daha detaylı bilgi almak ve farklı kullanım yöntemlerini incelemek için “C# ile Base64 Encode ve Decode İşlemleri” başlıklı yazımızı incelemelisiniz.
- Dosyalar 10.07.2020 tarihinde güncel bir antivirüs ile taranmıştır.
- Projede kullanılan görsel hakkında;