C# Resim Dosyalarını Base64String’e Çevirme

Merhaba,

Bugün C# ‘ da resim olarak aldığımız bir dosyayı Base64String çevirip tekrar resme çevirme adına bir uygulama yazacağım. Base64String sadece ASCII karakterlerini kullanan ortamlarda iletilmesine ve saklanmasına olanak tanıyan bir kodlama şemasıdır. CSS’de img src =”” kısmına resmin adresini yazıyorduk fakat artık base64,string şeklinde yazacağız bize avantajı her zaman o adrese bağlanıp resmi bulmak zorunda kalmayacak Base64String’i gömeceğimiz için koda o siteden belirtilen adresteki resim olmasa bile artık resim bile her zaman gelecektir. Çevirme işlemi resim <=> byte[] <=> base64 şeklinde gerçekleşir.

Form Tasarımı:

form1

form2

 

Kodlarımız : 

[csharp]

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace imageTobase64string
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnBase64String_Click(object sender, EventArgs e)
{
pbImage.Image = Image.FromFile(@"" + pbImage.ImageLocation + "");

using (MemoryStream ms = new MemoryStream()) // Uzantısına göre kırılma yaptığımız kısım
{
if (Path.GetExtension(pbImage.ImageLocation).ToUpper() == ".PNG")
{
pbImage.Image.Save(ms, ImageFormat.Png);
}

if (Path.GetExtension(pbImage.ImageLocation).ToUpper() == ".JPG")
{
pbImage.Image.Save(ms, ImageFormat.Png);
}
byte[] imageBytes = ms.ToArray();

txtBase64String.Text = Convert.ToBase64String(imageBytes);
}
}

private void btnResimSec_Click(object sender, EventArgs e) //Dosya seçme işlemi yaptığımız kısım
{
OpenFileDialog dosya = new OpenFileDialog();
dosya.Filter = "Tüm Dosyalar |*.*|JPG Dosyası|*.jpg,*.jpeg|PNG Dosyası|*.png";
dosya.Title = "Resim Seç";
dosya.ShowDialog();
string DosyaYolu = dosya.FileName;
pbImage.ImageLocation = DosyaYolu;
btnBase64String.Enabled = true;
}

private void btnImageConverter_Click(object sender, EventArgs e) //string kısmı resme çeviren kısım
{

byte[] imageBytes = Convert.FromBase64String(txtBase64String.Text);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);

ms.Write(imageBytes, 0, imageBytes.Length);
pbSonuc.Image = Image.FromStream(ms, true);
}

private void btnTemizle_Click(object sender, EventArgs e) //temizleme işlemleri
{
pbImage.Image = null;
pbSonuc.Image = null;
txtBase64String.Clear();
}

private void Form1_Load(object sender, EventArgs e) //Form ilk açılırken resim secmeden btnBase64String pasif olsun
{
btnBase64String.Enabled = false;

}
}
}

[/csharp]

Ayrıca Base64String’in doğruluğunu şu şekilde kontrol edebiliriz.

form3

 

Base64String kullanarak css de gömülü resim kullanmayı nasıl yapacağımız hakkında bilgi vermek istedim umarım yararlı olur. İyi çalışmalar.

 

Ahmet Hamatoğlu

1991 İzmir/Konak doğumluyum. Hacettepe Üniversitesi Matematik Bölümü 2014 mezunuyum. Yazılıma ilk olarak bölümde aldığım C++ dersi ile başladım daha sonra Java , Python ve C# dilleriyle geliştirmeler yaptım. Şu anda Yazılım Mühendisi olarak çalışıyorum. .Net ve Oracle teknolojileri üzerine çalışmalarımı sürdürüyorum. Elimden geldiği kadar bilgilerimi aktarmaya çalışıyorum. Junior seviyesinde olduğum için sitede bilgilerimi paylaşmamın araştırma yapmamı sağlamasının bana katkı sağlayacağını düşünüyorum. Sormak istediğiniz aklınıza takılan her konuda yardımcı olmaya çalışırım.

Bir Cevap Yazın

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