用Visual Studio 2010编写Data Url生成工具C 版

本文介绍如何使用VisualStudio2010创建DataUrl生成工具,详细解释DataUrl的概念及支持的类型,并提供C#代码实现,便于快速生成DataUrl用于网页内嵌资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

声明:本文系本人依照真实经历原创,未经许可,谢绝转载。

此文百度经验版本:如何用Visual Studio 2010打造Data Url生成工具

源码下载:用Visual Studio 2010编写Data Url生成工具C#源码

相关文章:Data Url生成工具之HTML5 FileReader实现

 什么是Data Url呢?Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。

例如:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJqSURBVDhPdZJdSJNhFMfPCKKPuzUyxK4KKZgWCoFlEEtL6SKQkiDoY3d506IbL0ytFiKDKJzvnq1Il7oNvFGsrCAom60yN/flB9aFBMNZECRTsIt/5+x9aaR14MfOnuf/O8/zsNH6sjmp+rJvV0/70KHlm8OVaB7ci6bH5uWz9zf11HVQtRH7d51z7/A/n7mOLyu38fprPZ7NH8GTuSqMzB5GMFYFR3A7Tt8lvxH/u+y+3SMzP1x4tWCDJ0x51HgB77gJoVgZOkaL0XCPRgxNrxNOcrycv4KnnyuhSTiyESW8IwRipWgdtqDuDjnycvFB2tI8uC8XzjRA44D3/UY8THDKir7oHqOvwEUf5cQl2w1qfBQ5hkCiBOojC+vwfCD0x/ZjZS2LzM8xaDygN1qEtuEi1LRRIx1vp86hdD3UhAneCRZEYpT0TH9cl6USi93QZDBntTEram9RJ9nayDUwWQXPJxaYNwtNSGY1dHGwL1GQ44tdcMvgSYNwudzARTXt5PKFD0BFTejmjdxaJi/Mfg+xvJjv41mWebiK8ulCTL+BuFR9lezyHn+yCCrGV07xqb/0U6XiSyyzpKZYNOjlrDji0lYz7bygaDWYqICK8zOY/mkZsoTENzfcPFTWvQbSBzgrjrjyS24+eo06WocsCKRLoZIcShC6Oajxp3z3Gkg/wBnJiiOuDJCynHLSW/mXBaet8KZNUCmWDPI9r8meZCQrjq4WqqS2hUYdgW14GClDIFWO0JyO9LIme5KRrK5sLEvZGbKfbKEX5z20eukBQZBe1mRPMnr0/yXvMjOljNVAeln782a9iH4Dmo3bByBiDoMAAAAASUVORK5CYII=" width="16" height="16" />
img标签的src属性值就是Data Url。

在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。
目前,Data URI scheme支持的类型有:
data:,文本数据
data:text/plain,文本数据
data:text/html,HTML代码
data:text/html;base64,base64编码的HTML代码
data:text/css,CSS代码
data:text/css;base64,base64编码的CSS代码
data:text/javascript,Javascript代码
data:text/javascript;base64,base64编码的Javascript代码
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据

那么如何才能生成Data Url呢?今天我就教大家自己用Visual Studio 2010打造一款Data Url生成工具的方法。

打开Visual Studio 2010


新建项目:文件》新建》项目


选择c#》Windows窗体应用程序》输入项目名称


拖动窗体到合适的大小


修改窗口的标题为:Data Url 生成工具


分别添加一个Label,两个TextBox,一个Button组件


修改组件的“Name”属性,以及Text属性


双击浏览按钮添加关键代码

        private void button_browse_Click(object sender, EventArgs e)        {            OpenFileDialog fbd = new OpenFileDialog();            fbd.Title = "请选择一张图片:";            fbd.CheckFileExists = true;            fbd.FileName = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);            if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)            {                textBox_saveDir.Text = fbd.FileName;                try                {                    Image img = Image.FromFile(textBox_saveDir.Text, true);                    System.IO.MemoryStream ms = new System.IO.MemoryStream();                    System.Drawing.Imaging.ImageFormat fmt = System.Drawing.Imaging.ImageFormat.Png;                    string ext = Path.GetExtension(textBox_saveDir.Text);                    switch (ext)                    {                        case "gif":                            fmt = System.Drawing.Imaging.ImageFormat.Gif;                            break;                        default:                            ext = "png";                            break;                    }                    img.Save(ms, fmt);                    textBox1.Text = "<img src=\"data:image/" + ext + ";base64," + Convert.ToBase64String(ms.GetBuffer())                        + "\" width=\"" + img.Width +"\" height=\"" + img.Height +"\" />";                }                catch (Exception ex)                {                    textBox1.Text = "错误:" + ex.Message + "\r\n堆栈:" + ex.StackTrace;                }            }        }

生成解决方案,启动调试


选择一张图片


点击打开后,就会立即生成Data Url了,这里直接把Data Url放到img标签里了,方便测试


怎么测试呢?

新建一个文本文档,把整个img标签的内容复制粘贴到文档中,保存;

然后将文件的扩展名改为“.html”;

然后在文件上单击鼠标右键》打开方式》选择一个浏览器,就可以看到效果了。



你学会了吗?


补充 2015.04.25

不知道有没有同学下载使用或调试,在尝试将尺寸比较大的图上生成DataURL时,
抛出了以下异常:
           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值