将普通文字转成路径(Path)的方法 (WPF,Silverlight,SVG)

将GraphicsPath转为SVG代码 将GraphicsPath转为SVG代码,利用PathPathData属性,PathData pathData = path.PathData;根据点类型逐一输出。 阅读详情

在WPF中使用

public string GetTextPath(string word, string fontFamily, int fontSize)
{
            Typeface typeface = new Typeface(new FontFamily(fontFamily), FontStyles.Normal, FontWeights.Normal, FontStretches.Normal); 
            return GetTextPath(word, typeface, fontSize);
}
public string GetTextPath(string word, Typeface typeface, int fontSize)
{
            FormattedText text = new FormattedText(word, 
                new System.Globalization.CultureInfo("zh-cn"), 
                FlowDirection.LeftToRight, typeface, fontSize,
                Brushes.Black);
            Geometry geo = text.BuildGeometry(new Point(0, 0)); 
            PathGeometry path = geo.GetFlattenedPathGeometry();
            return path.ToString(); 
}


用法:
<Path x:Name="textPath" Canvas.Left="10" Canvas.Top="10" Fill="#FFFF0000" />


C#代码:
rootElement.findName('textPath').Data = GetTextPath("测试一下A Test!", "方正大黑简体", 42);



在SVG/Silverlight中使用,可以写成 WCF

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService”。
[ServiceContract]
public interface IService
{
    [OperationContract]
    string GetTextPath(FontParam cs);
}


[DataContract]
public class FontParam
{
    string word = "";
    string fontFamily = "宋体";
    int fontSize = 12;

    [DataMember]
    public string Word
    {
        get { return word; }
        set { word = value; }
    }

    [DataMember]
    public string FontFamily
    {
        get { return fontFamily; }
        set { fontFamily = value; }
    }

    [DataMember]
    public int FontSize
    {
        get { return fontSize; }
        set { fontSize = value; }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

using System.Windows.Media;
using System.Windows;

// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、服务和配置文件中的类名“Service”。
public class Service : IService
{
    public string GetTextPath(FontParam fp)
    {
        Typeface typeface = new Typeface(new FontFamily(fp.FontFamily), FontStyles.Normal, FontWeights.Normal, FontStretches.Normal);
        return GetTextPath(fp.Word, typeface, fp.FontSize);
    }

    private string GetTextPath(string word, Typeface typeface, int fontSize)
    {
        FormattedText text = new FormattedText(word,
            new System.Globalization.CultureInfo("zh-cn"),
            FlowDirection.LeftToRight, typeface, fontSize,
            Brushes.Black);

        Geometry geo = text.BuildGeometry(new System.Windows.Point(0, 0));
        PathGeometry path = geo.GetFlattenedPathGeometry();

        return path.ToString();
    }
}

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息-->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

记得添加PresentationCore.dll和WindowsBase.dll的引用,这两个在.net 4.0 /wpf 的目录下


 ServiceReference1.ServiceClient sc = new ServiceReference1.ServiceClient();
            ServiceReference1.FontParam cs = new ServiceReference1.FontParam();
            cs.FontSize = fontSize.AsInt();
            cs.FontFamily = fontFamily;
            cs.Word = word;
            haha = sc.GetTextPath(cs);

哈哈,这样就可以了!!



来自(http://blog.csdn.net/johnsuna/article/details/1782480


contenteditable格式化html文本转svg 文字包住,字体对应face属性,字体颜色对应color属性,字体大小对应size属性。我们知道,在一个div里加上contenteditable="true"之后,它就变成了一个可编辑的框,而且是能满足基本需求的富文本编辑框。算法的思想是一个字一个字的选取,获取选择部分的位置,当选择部分的y值比第一个字的y值大(而且超过了某个阈值),则从这个字符开始换行了。上文中已经说过,HTML里的文本是会自动换行的,但SVG里的文本不会。如果是BR结点,结束上一行,添加新的一行,只有BR结点这个元素,再新建一行。.. 阅读详情

相关推荐

svg-text-to-path:扫描SVG文件并进行转换的Ruby脚本给定现有SVG字体的路径中的标签

SVG文本到路径 正在安装 克隆仓库: git clone https://github.com/caesarsol/svg-text-to-path.git 然后使用rake install安装gem。 您的svg-ttp可执行文件现在应该在PATH中。 用法: svg-ttp input.svg output.svg 测验 运行./bin/svg-ttp test/assets/test.svg test/assets/test.ttp.svg 。 在浏览器中检查输出。 去做 修复一些小的定位错误(SVG字体中的隐藏参数?) 更多不同的字体,也可以从~/.fonts-svg-ttp/搜索它们 CLI中的更多选项,即fonts_dir 翻译对于确定位置有问题,请阅读SVGO来源: : 缩进输出 lib /中的目录结构 测试您的代码,这到底是什么!

SVG格式图片转成HTML中SVGPath路径

svg的图片右键-记事本打开

肖肖肖丽珠的博客 5007

text2svg:将您的纯旧文本转换为 SVG 路径

#text2svg text2svg 是一个命令行工具,可将文本转换为 SVG 路径数据数组。 可以将输出复制到项目中,让您将对象映射到字体路径上。 安装 好老git: git clone https://github.com/mshenfield/text2svg 用法 cd 进入项目目录并使用 node 运行 text2svg.js。 cd text2svg node text2svg.js "Hello world" 用法: node text2svg.js yourText 将来可能会支持选择字体 - 现在它只会输出 SVGized Times New Roman。 例子 您可以在文件夹中找到示例应用程序。 它将圆映射到由 text2svg 生成的 SVG 路径,并添加了一些基本动画。 向和 贡献 Fork、hack 并提交拉取请求。 欢迎所有贡献,我会及时回复您的拉取

推荐项目:Google 字体到 SVG 路径转换器

推荐项目:Google 字体到 SVG 路径转换器 google-font-to-svg-pathCreate an SVG path from a Google font项目地址:https://gitcode.com/gh_mirrors/go/google-font-to-svg-path 在 Web 开发中,有时候我们需要自定义字体或者创建矢量图形,这时Dan Marshall开发的G...

gitblog_00025的博客 1263

svg文字路径动画,让文字沿着路径动起来】

最近项目里面用到了这个文字路径动画,不得不说确实挺好玩的,还是挺有意思的,如果有需要的小伙伴可以参考!

weixin_56501064的博客 2044

自定义控件学习笔记(三)Paint详解下

2.7 setMaskFilter(MaskFilter maskfilter)为之后的绘制设置 MaskFilter。上一个方法 setShadowLayer() 是设置的在绘制层下方的附加效果;而这个 MaskFilter 和它相反,设置的是在绘制层上方的附加效果。 到现在已经有两个 setXxxFilter(filter) 了。前面有一个 setColorFilter(filter) ,是对

yy471101598的博客 682

C# 根据包含文件的路径和文件的名称的字符串获取文件名称的几种方法

C# 截取带路径的文件名字,扩展名,等等 的几种方法 C#对磁盘IO操作的时候,经常会用到这些,路径,文件,文件名字,文件扩展名.     之前,经常用切割字符串来实现,     可是经常会弄错. 尤其是启始位置,多少个字节,经常弄晕.   下面这种方法貌似比较简便:   string filePath = @"E:\Randy0528\中文目录\JustTest.rar"; Re

nieweiking的博客 1万+

【亲测免费】 探索创新:font_to_svg——字体到SVG路径转换器

探索创新:font_to_svg——字体到SVG路径转换器 在数字设计的广阔领域里,高效地处理和展现文本图形至关重要。今天,我们有幸向您推荐一个非常实用的开源项目——font_to_svg。这个项目能够将TrueType字体文件中的单个字符转换为SVG(可缩放矢量图形)的路径形状,为设计师和开发者提供了一个全新的工具。 项目介绍 font_to_svg是一个简洁而强大的C++库,它利用了Freet...

gitblog_00071的博客 944

android获取文字路径动画,文字路径动画控件TextPathView解析

前言此博客主要是介绍TextPathView的实现原理,而TextPathView的使用可以参考README,效果如图:image思路介绍下面写的实现TextPathView思路介绍主要有两部分:一部分是文字路径的实现,包括文字路径的获取、同步绘画和异步绘画;一部分是画笔特效,包括各种画笔特效的实现思路。文字路径文字路径的实现是核心部分,主要的工作就是把输入的文字转化为Path,然后绘画出来。绘画...

weixin_35225189的博客 625

SVG 文本(二)路径文本 <textPath

x、text-anchor、startOffset 属性:确定排列其实位置。 修改 y 无效果。 dx、dy 属性:切线和法线方向的偏移。 textPath 渲染原理 案例 <svg xmlns="http://www.w3.org/2000/svg" width="600" height="400"> <defs> <!-- 网格 --> <pattern id="grid" x="0" y="0" wid..

卡尔特斯 1088

【亲测免费】 text-to-svg:将文本转换为SVG路径的神器

在当今的网页设计和开发中,SVG(可缩放矢量图形)已经成为了一种非常流行的图形格式。它不仅可以创建高质量的矢量图形,还可以轻松地与HTML和CSS集成,实现各种动画效果。而将文本转换为SVG路径,可以让我们更加灵活地控制文本的显示效果。今天,我要向大家推荐一个开源项目——text-to-svg,它正是实现这一功能的神器。 ## 项目介绍 text-to-svg是一个可以将文本转换为SVG路径的...

gitblog_00872的博客 1141

svg生成path代码

最简单的,ui画好svg图片发给你,你右键记事本打开,正常里面就会显示path

wnk1997的博客 2244

svg基本形状转为path

svg中有rect,circle,ellipse,polygon等基本形状,有些时候我们需要将他们转为path,例如描边动画,文字路径的效果需要path来实现。 转换后的描边动画: 转换后的文字路径效果: 更多细节,请参考文章: svg基本形状转为path ...

weixin_40863414的博客 3933

c#图形路径变换

 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Drawing.

python二级题库 935

php 将远程svg文件保存到本地(亲测可用)

php 将远程svg文件保存到本地,php下载远程svg到本地,php下载远程svg到本地,php下载远程svg到本地, php imagick svg转成jpg,tp将远程svg文件保存到本地,

G佳伟 594

WPF中,将普通文字转成路径(Path)方法

public string GetTextPath(string word, string fontFamily, int fontSize){            Typeface typeface = new Typeface(new FontFamily(fontFamily), FontStyles.Normal, FontWeights.Normal, FontStretches.No

祝紫山(大可山人)博客[GDI+,WPF, .Net图形图像] 8830

C# 轻松获取路径中文件名、目录、扩展名等

string path = "C:\\dir1\\dir2\\foo.txt"; string str = "GetFullPath:" + Path.GetFullPath(path) + "\r\n"; str += "GetDirectoryName:" + Path.GetDirectoryName(path) + "\r\n"; str += "GetFileName:" +

面朝大海,春暖花开 5188

字体到SVG转换工具:font_to_svg 安装与配置完全指南

字体到SVG转换工具:font_to_svg 安装与配置完全指南 项目基础介绍与编程语言 font_to_svg 是一个由 C++ 编写的开源工具,目标是将 TrueType 字体文件中的单个字符转换成 SVG 路径形状。它适用于想要从字体文件中提取图形并以矢量格式使用的开发者。该项目托管在 GitHub 上,采用 BSD-3-Clause 许可证,允许广泛的使用与修改。 关键技术和框架 此项目依...

gitblog_01277的博客 1514
上一篇: C#技术分享【PDF转换成图片——11种方案】
下一篇: 将Xaml文档转成XPS文档
fer_ba
博客等级 码龄19年 21粉丝 59原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值