Base64 و کاربرد جالب آن
نویسنده: مشتبآ
تاریخ: ۱۳۹۲/۰۲/۰۲ ۹:۱۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Image2Base64Converter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = false;
ofd.Filter = "Pictures |*.bmp;*.jpg;*.jpeg;*.png";
if (ofd.ShowDialog(this) == DialogResult.OK)
{
txtImagePath.Text = ofd.FileName;
}
}
private void btnConvert_Click(object sender, EventArgs e)
{
if (!File.Exists(txtImagePath.Text))
{
MessageBox.Show("File not found!");
return;
}
btnCopy.Enabled = false;
btnConvert.Enabled = false;
txtOutput.Enabled = false;
BackgroundWorker bworker = new BackgroundWorker();
bworker.DoWork += (o, a) =>
{
string header = "data:image/{0};base64,";
header = string.Format(header, txtImagePath.Text.GetExtension());
StringBuilder data = new StringBuilder();
byte[] buffer;
BinaryReader head = new BinaryReader(
new FileStream(txtImagePath.Text, FileMode.Open));
buffer = head.ReadBytes(6561);
while (buffer.Length > 0)
{
data.Append(Convert.ToBase64String(buffer));
buffer = head.ReadBytes(6561);
}
head.Close();
head.Dispose();
this.Invoke(new Action(() =>
{
txtOutput.ResetText();
txtOutput.AppendText(header);
txtOutput.AppendText(data.ToString());
btnCopy.Enabled = true;
btnConvert.Enabled = true;
txtOutput.Enabled = true;
}));
};
bworker.RunWorkerAsync();
}
private void btnCopy_Click(object sender, EventArgs e)
{
Clipboard.SetText(txtOutput.Text);
}
}
public static class ExtensionMethods
{
public static string GetExtension(this string str)
{
string ext = string.Empty;
for (int i = str.Length - 1; i >= 0; i--)
{
if (str[i] == '.')
{
break;
}
ext = str[i] + ext;
}
return ext;
}
}
}شاید یک کاربرد آن در CSS این هست که تصویر استفاده شده در فایل CSS به همراه سند CSS قابل جابجایی میباشد و نیاز نیست که تصویر بر روی هاست Upload شود.