Alper Hocam ile sık sık "
yahu bu http'nin değişmesi lazım, browserların değişmesi lazım, geri kaldı birçok gelişmeye göre..." diye başlayan birçok sohbetimiz olmuştur. Ben de boş zamanlarımda "
acaba değiştirsek neresinden nasıl başlardım?, dur bakalım şu HTTP'nin ince ne detayları varmış" diyerek HTTP'nin birçok detayını inceleme kararı almıştım. Araştırmalarım sırasında
şu link biraz şaşırttı beni açıkcası.
Dökümanın dediğine göre bir resim dosyası base64 formatına çevrilip <img> tagına verildiğinde standartlara göre browserların bunu görüntülemesi gerekiyor ( bilin bakalım kim desteklemiyor olabilir ? ;) ). Küçük bir test kodu ile bunu denedim. Herhangi bir resim dosyasını base64 formatındaki bir string'e çeviren kod aşağıda.
public string GetStringFromImage(string path)
{
return Convert.ToBase64String(File.ReadAllBytes(path));
}
Görüntülenmesi istediğim resim ise ;

HTML kodum ise aşağıda. Formata dikkat ederseniz - aslında şemaya -
data:[<mediatype>][;base64],<data>
şeklinde.
<
img src="data:img/gif;base64,R0lGODlhYQAWAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD//////
wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wD
MAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADN
mMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmY
AmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMm
WbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM
5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswz
mcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz/
//8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZ
v/Mmf/MzP/M////AP//M///Zv//mf//zP///ywAAAAAYQAWAAAI0gAfCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsmRDAAAoosy
48iTKlwNfykx5sGVMmhJtWtSp0CZPngZ/4owIdKTPoQ+K3tTZ8ijMpU+TyrwplWZUpUFxCu0ZVarXmla1hqVaVeDTpkgTztyKEC3UgmvNipVL9mj
dtG2HMsVL92tVvXP9op3ZV/BYlwT35o3r1W5fx0Udf8UKF3BivoonH9Ysd7Pbwp8ZrkWqNDNkwp0NXw3M2aTr17Bjy55Nu7bt2xQDAgA7" />
Eğer yukardaki şekilde değil de kod ile base64 string'ini direk <img> tagına atamak istiyorsanız aşağıdaki kod sorunu çözecektir.
<img src="data:img/gif;base64,<%Response.Write(Convert.ToBase64String( System.IO.File.ReadAllBytes("C:\\vs.gif"))); %>" />Sonuç; ie7 - yamulmuyorsam - desteklemez iken, Firefox bunu başarılı bir şekilde görüntülüyor.

Tabi bu yöntemle resim göstermek neye yarar, limitleri var mıdır, yok mudur tarzında sorularınız için
şu linkden faydalanabilirsiniz.