10.07.2020 / Serdar Kardan
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.
10.07.2020 - 4689