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ı:
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;
}
}
}
Ayrıca Base64String’in doğruluğunu şu şekilde kontrol edebiliriz.
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.