`
testcs_dn
  • 浏览: 113784 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

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

什么是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”;

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



你学会了吗?

分享到:
评论

相关推荐

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

    《使用Visual Studio 2010开发Data URL生成器C#源码解析》 Data URL是一种在Web开发中用于嵌入小型数据(如图像或文本)的机制,它允许将数据直接编码为URL的一部分,避免了额外的HTTP请求。本项目以C#编程语言为...

    visual studio C#记事本源代码

    从给定的文件信息来看,这是一段使用C#在Visual Studio环境中编写的简易记事本程序的源代码。下面将详细解析其中的关键知识点。 ### 1. 引入命名空间 ```csharp using System; using System.Collections.Generic; ...

    C# 代理类生成工具

    本篇文章将详细介绍"C# 代理类生成工具"及其在Visual Studio(VS)中的应用。 1. **Web服务代理类**:Web服务代理类是.NET框架自动生成的C#类,它封装了与Web服务通信的所有细节。这些类通常由`svcutil.exe`工具或...

    C#foreach用法案例,使用VS2019编写

    在本文中,我们将深入探讨`foreach`循环的工作原理、如何使用它以及一些实用案例,这些案例都是在Visual Studio 2019环境下编写的。 `foreach`循环的基本语法如下: ```csharp foreach (var item in collection) {...

    C#winform生成二维码程序及源码

    本文将深入探讨如何使用C# WinForm来创建一个二维码生成器程序,并结合源码进行详细讲解。 首先,我们需要理解二维码(Quick Response Code,简称QR码)是一种二维条形码,能够存储大量的文本、URL、联系信息等数据...

    C#使用zXing插件生成二维码

    ### C# 使用 zXing 插件生成二维码详解 #### 一、概述 在现代软件开发过程中,二维码的使用越来越广泛。它不仅被用于产品跟踪、文档管理等场景,也被广泛应用在移动支付、营销推广等领域。为了更好地实现二维码的...

    C#调用ODI webservice

    在这个场景中,我们将探讨如何使用ODI生成的基于Web服务的实时同步接口,并通过WebLogic服务器进行部署,最后用C#编程语言在Visual Studio 2008环境下进行调用。 首先,ODI的SKM生成的实时同步Webservice是ODI提供...

    C#创建WEBSERVICE、PB调用实例

    本实例将探讨如何使用C#在Visual Studio 2010中创建一个Web Service,并且展示如何利用PowerBuilder 11.5来调用这个Web Service,接收返回的XML数据并将其转换为DataWindow对象。 首先,让我们详细了解一下C#创建...

    代码生成器&网站架构设计源码

    代码生成器是一种工具,它能够自动生成符合特定需求的代码,大大减少了手动编写代码的工作量,提高了开发速度,并降低了错误率。在ASP.NET框架下,代码生成器更是被广泛应用,它可以帮助开发者快速构建网站架构,...

    WebService开发实例

    5. **测试与部署**:WCF提供了更丰富的测试手段,包括使用Visual Studio的WCF测试客户端,或者发布服务到IIS以供远程调用。 在实践中,你可能还会遇到关于安全性、传输协议、序列化格式、异常处理、性能优化等方面...

    vs2008 c#.net (web)二维码生成系统

    【标题】"vs2008 c#.net (web)二维码生成系统" 是一个基于Visual Studio 2008和C#.NET开发的Web应用程序,主要用于生成二维码。它结合了50x50像素的Logo图片功能,允许用户在生成的二维码中嵌入自定义的标识图像。...

    visual c++ 信息系统开发实例精选 商品库存管理系统源码(免费送)

    "更多商业程序.url"和"使用说明.url"则是相关资源链接,供用户进一步学习和了解其他商业程序或系统使用方法。 总的来说,Visual C++商品库存管理系统的开发涵盖了软件工程的多个方面,包括需求分析、系统设计、编码...

    QRCoder VS2010版本

    QRCoder是一款开源的C#二维码生成库,适用于Visual Studio 2010(VS2010)环境。这个项目允许开发者轻松地在他们的应用程序中集成二维码生成功能,而无需深入理解二维码编码的复杂性。QRCoder库的创建是为了简化开发...

    C# webservice实例与在IIS上的部署

    3. **测试Webservice**:在Visual Studio中,点击工具栏的"调试" -&gt; "启动调试",会自动打开一个Web浏览器显示服务的默认文档。点击"Show wsdl"链接,可以查看服务接口的定义。 ### 二、Web网站和Winform调用...

    C#Web Service C#Web Service C#Web Service

    在C#中,可以使用`svcutil.exe`工具生成代理类,或者直接在项目中添加服务引用,自动创建代理类。 ```csharp var client = new Service1Client(); string result = client.GetData(123); ``` 6. **安全考虑**:Web...

    c# webservice简单的例子,以及调用

    输入Web服务的URL,Visual Studio会生成一个代理类,用于调用Web服务。 2. **调用服务方法**:使用生成的代理类,你可以像调用本地方法一样调用Web服务。例如: ```csharp using ExampleWebService; // 创建服务...

    C# WinFormIECache.rar

    - 使用Visual Studio的调试工具进行代码调试,确保程序正确运行。 - 应对各种操作系统版本和IE配置进行测试,以确保兼容性和稳定性。 8. **发布与部署**: - 生成的WinForms应用程序是一个.exe文件,可以通过...

    2010mvc2源代码新手教程

    【标题】"2010mvc2源代码新手教程"主要涵盖了ASP.NET MVC 2框架在Visual Studio 2010中的应用。ASP.NET MVC是一个轻量级、模型-视图-控制器(Model-View-Controller)的Web应用程序开发框架,它由微软提供,旨在提供...

    MvcMusicStore代码

    为了保证代码质量,MvcMusicStore可能包含了单元测试和集成测试,使用如NUnit或Microsoft.VisualStudio.TestTools.UnitTesting框架。 通过详细研究MvcMusicStore项目,你可以了解ASP.NET MVC 3的基本工作原理,学习...

Global site tag (gtag.js) - Google Analytics