彩色文字对象

基于一些特殊需求,本人开发了彩色文字对象,该功能通过类似html代码的方式指示文本,并输出图像.

我们还是先来看一张图像.

这不是文本,是通过指定文本代码输出的图像.我们来看一下实现代码.

 Dim DSL As New DSAPI.图形图像.彩色文字图像
With DSL
.画布尺寸 = Me.Size '告诉彩色文字引擎最宽能画到多少
.绘制描边 = True
.绘制阴影 = True
.描边颜色 = Color.Black
.文字清晰度 = Drawing.Text.TextRenderingHint.AntiAliasGridFit
.文字颜色 = Color.Yellow
.阴影大小 = 5
.阴影浓度 = 30
.阴影偏移量 = New Point(0, 0)
.字符行距 = 3
.字符间距 = 1
.链接下划线颜色 = Color.Red
.字体 = New Font("宋体", 9)
Dim S As String = "你好,我是<color=255,0,255>彩</color><color=0,255,255>色</color><color=0,255,0>文</color><color=0,0,255>字</color>"
S &= vbCrLf & "<color=255,255,255>这是<b>粗体</b>,这是<i>斜体</i>,还有<u>下划线</u>"
S &= vbCrLf & "还能插入<font=微软雅黑>其他字体</font></color>"
S &= vbCrLf & "如果你愿意,还能加入<color=0,255,0><link=http://www.baidu.com>链接</link></color>"
.代码文本 = S
Me.BackgroundImage = .输出图像

  

是不是让你想到了游戏里的字幕呢?是的,只要效果实现了,你想用在哪里都可以.但同时你也注意到了,里面有链接代码.既然只是图片,这个链接有什么用呢?当然了,图片肯定是要设置给某个控件的,不然哪里显示图片呢?链接是带有坐标信息的,当你的代码中使用到了链接,那么你可以在控件的MouseMove或者MouseDown事件里检测鼠标位置是否是链接,并且是什么链接.
一切属性的设置,都将在获取输出图像时应用.所以,如果你需要获取显示的文本,也就是去除了代码的文本内容,那么你需要先获取输出图像后再输出显示文本.

Me.BackGroundImage=DSL.输出图像
Console.WriteLine(DSL.显示文本)

 输出结果:

你好,我是彩色文字
这是粗体,这是斜体,还有下划线
还能插入其他字体
如果你愿意,还能加入链接

  链接的获取

Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown
Dim 链接 As DSAPI.图形图像.彩色文字图像.链接 = DSL.获取指定坐标的链接(e.Location)
If 链接 IsNot Nothing Then
'如果鼠标指针位置有链接,则显示链接信息
MsgBox(链接.LinkTarget)
End If
End Sub Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
Dim 链接 As DSAPI.图形图像.彩色文字图像.链接 = DSL.获取指定坐标的链接(e.Location)
If 链接 IsNot Nothing Then
'如果鼠标指针位置有链接,则为手型
Me.Cursor = Cursors.Hand
Else
'反之为箭头
Me.Cursor = Cursors.Default
End If
End Sub

  

DSAPI 图形图像篇(上)的更多相关文章

  1. DSAPI多功能组件编程应用-图形图像篇(中)

    [DSAPI.DLL下载地址]   说到计算机上使用代码来处理各种图像特效,是一份太有挑战性的工作.以下涉及的所有图像效果均不是从网上复制的源码,而是本人试验数次并编写的,所以原理上会和网上的有所不同 ...

  2. 超全面的.NET GDI+图形图像编程教程

    本篇主题内容是.NET GDI+图形图像编程系列的教程,不要被这个滚动条吓到,为了查找方便,我没有分开写,上面加了目录了,而且很多都是源码和图片~ (*^_^*) 本人也为了学习深刻,另一方面也是为了 ...

  3. [转]超全面的.NET GDI+图形图像编程教程

    本篇主题内容是.NET GDI+图形图像编程系列的教程,不要被这个滚动条吓到,为了查找方便,我没有分开写,上面加了目录了,而且很多都是源码和图片~ GDI+绘图基础 编写图形程序时需要使用GDI(Gr ...

  4. C# .NET开发图形图像程序时提示"GDI+ 中发生一般性错误"

    今天突然收到一封信,说我那个极度复杂的Marshal的问题被解决了(http://www.cnblogs.com/hotcan/archive/2005/01/12/91007.html).顿时感觉好 ...

  5. 一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  6. C#_GDI+详细教程(图形图像编程基础)

    第7章  C#图形图像编程基础 本章主要介绍使用C#进行图形图像编程基础,其中包括GDI+绘图基础.C#图像处理基础以及简单的图像处理技术. 7.1  GDI+绘图基础 编写图形程序时需要使用GDI( ...

  7. Dreamweaver杀手!Illustrator终结者?Flash的末日?图形图像设计程序之网页版

    Dreamweaver杀手!Illustrator终结者?Flash的末日?图形图像设计程序之网页版 阅读:  评论:  作者:Rybby  日期:  来源:rybby.com Adobe 家的 Il ...

  8. GDI+图形图像技术1

    System.Drawing命名空间提供了对GDI+基本图形功能的访问,其中一些子命名空间中提供了更高级的功能. GDI+由GDI发展而来,是Windows图形显示程序与实际物理设备之间的桥梁. GD ...

  9. HMS Core图形图像技术展现最新功能和应用场景,加速构建数智生活

    [2022年7月15日,杭州]HUAWEI Developer Day(华为开发者日,简称HDD)杭州站拉开帷幕.在数字经济不断发展的今天,开发者对图形图像的开发需求更加深入和多样化,从虚拟环境重构到 ...

随机推荐

  1. 用PCA(主成分分析法)进行信号滤波

    用PCA(主成分分析法)进行信号滤波 此文章从我之前的C博客上导入,代码什么的可以参考matlab官方帮助文档 现在网上大多是通过PCA对数据进行降维,其实PCA还有一个用处就是可以进行信号滤波.网上 ...

  2. 【爆料】-《阿伯丁大学毕业证书》AU一模一样原件

    ☞阿伯丁大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&a ...

  3. HTTP协议中GET和POST区别

    GET一般用于获取和查询资源信息:POST一般用于更新信息,表示可能修改服务器上资源的请求 GET请求一般是幂等的 GET请求数据会附加在url之后,POST请求数据放到request-body中 G ...

  4. H5单张、多张图片上传

    前言 今天我们聊一聊图片上传,单张Or多张 ,如今,各大图片上传插件数不胜数,例如:Jquery的 verupload.js,jQuery File Upload.Uploadify.jQuery.f ...

  5. Spark学习之键值对操作总结

    键值对 RDD 是 Spark 中许多操作所需要的常见数据类型.键值对 RDD 通常用来进行聚合计算.我们一般要先通过一些初始 ETL(抽取.转化.装载)操作来将数据转化为键值对形式.键值对 RDD ...

  6. SpringCloud分布式微服务搭建(三)

    本例子是一个springcloud的configserver,client例子 利用git存储各个服务的配置文件 server获取配置文件的仓库位置,并把server注册到eureka中,同时为了实现 ...

  7. redis测试实践

    最近测试服务端的时候,接触到了redis,之前也看过,但不系统,借着这次实践,记录一下. 一.写在前面 Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的 ...

  8. javaScript设计模式之----工厂模式

    什么是工厂模式?我们通过一个例子了解一下: 比如我们想要弹出几个字符串 function funA(){ alert('a'); } function funB(){ alert('b'); } fu ...

  9. ajax调用WebAPI添加数据

    //获取账号名 var Name = document.getElementById("Text1").value;//获取密码 var Pass = document.getEl ...

  10. Fiddler 接口测试(Composer)的使用方法及并发测试

    下载地址:https://www.telerik.com/download/fiddler 一.Composer简介 右侧Composer区域,是测试接口的界面: 相关说明: 1.请求方式:点开可以勾 ...