gdi 绘制文字时变宽,变高,加间距功能问题,求助

问题描述

这段代码的功能是在gdi绘制文字时将文字通过m.Scale()方式变宽,变高,并且加间距功能问题,但现在的问题是一旦变换m.Scale()里的参数值,坐标会跟着变,错位,TextRectangle为原始的起点坐标及宽高度,文字是在这个区域内绘制,请大神帮忙,if(!string.IsNullOrEmpty(TextValue))//判断字符串是否为空{char[]fs=TextValue.ToCharArray();SizeFsize=g.MeasureString(fs[0].ToString(),TextFont,int.MaxValue);PointF[]positions=newPointF[TextValue.Length];for(inti=0;i<TextValue.Length;i++){if(i==0){positions[i]=newPointF(TextRectangle.X+i*size.Width,TextRectangle.Y);}else{positions[i]=newPointF(TextRectangle.X+i*(size.Width+JianJu),TextRectangle.Y);}Matrixm=newMatrix();m.Scale(KuanDu,GaoDu,MatrixOrder.Prepend);g.Transform=m;g.DrawString(fs[i].ToString(),TextFont,sb,positions[i]);g.ResetTransform();}}

m.Scale(1,1,MatrixOrder.Prepend);传1,1的情况m.Scale(1,1,MatrixOrder.Prepend);传2,1的情况此时出现坐标变位了

解决方案

本帖最后由 kaitiankeji 于 2014-07-07 11:46:55 编辑
解决方案二:
试试把文字绘制到另外个Rectangle上,然后把图片在绘制到画布上

时间: 2024-08-02 04:05:34

gdi 绘制文字时变宽,变高,加间距功能问题,求助的相关文章

iOS点击文字按钮变转圈加载效果_IOS

本文实例为大家分享了iOS点击文字按钮变转圈加载效果的相关代码,供大家参考,具体内容如下 实现效果: 实现代码: // 画弧线 - (void)drawHalfCircle { loadingLayer = [self drawCircle]; // 这个是用于指定画笔的开始与结束点 loadingLayer.strokeStart = 0.0; loadingLayer.strokeEnd = 0.75; } - (CAShapeLayer *)drawCircle { CGRect fram

C# 数据库系统中使用GDI+绘制柱状图

在C#+SQL Server数据库做系统中,通常需要对数据库中的数据进行绘制图形报表方便经理查看,虽然有很多实用的水晶报表控件和图表控件实现该功能,但我还是想讲讲如何使用GDI绘制简单的柱状图.(推荐大家不要手画,尽量使用已有控件函数绘制) 一.前言 我们在使用C#+SQL Server做的简单应用系统是一个手机销售的系统,所以它有不同手机品牌和不同年份销售手机的利润和数量的柱状图,方便公司经理查看那个月和那种品牌手机销售更好,方便进货增加企业利润.其中它点击"输入年份",查看&quo

jQuery实现的鼠标经过时变宽的效果(附demo源码)_jquery

本文实例讲述了jQuery实现的鼠标经过时变宽的效果.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lan

GDI+绘制自定义行距的文本(续)

在上文"GDI+绘制自定义行距的文本的三种方法."中,介绍了绘制自定义行间距的多行文本的方法. 在第三种的方法中,启用了GdipDrawDriverString这个函数.这个函数可以定义每个字符的位置,这是它的优点.不过它的缺点也比较明显.一是它定义的字符位置是以字符的左下角为基准的,和一般的概念是两样的.二是他对Font要求比较高,据说如果采用的是英文字体,在显示中文时会显示成一个个小方块. 再翻翻GDIP中的其他函数,发现graphics的DrawString的方法都是调用Gdip

js兼容火狐获取图片宽和高的方法

  本文实例讲述了js兼容火狐获取图片宽和高的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!doctype html> <html> <head> <meta content="text/html; charset=GBK" http-equiv="Content-Type" />

JS获取网页属性包括宽、高等等

 这篇文章主要介绍了JS获取网页属性包括宽.高等等,需要的朋友可以参考下  代码如下: function getInfo()  {  var s = "";  s += " 网页可见区域宽:"+ document.body.clientWidth+" ";  s += " 网页可见区域高:"+ document.body.clientHeight+" ";  s += " 网页可见区域宽:&quo

win7系统CPU使用率突然变高又突然变低的解决方法

  操作win7纯净版系统时遇到CPU使用率突然变高又突然变低的情况,严重拖慢系统运行速度,还导致电脑发热,如果长时间这样,对电脑硬盘的损耗是很大的,为什么会发生这样的情况呢?很多用户都不知道CPU使用率突然变高又突然变低的原因,下面小编和大家讲解一下win7系统CPU使用率突然变高又突然变低的解决方法. 步骤如下: 1.首先要明白在哪里查看CPU使用率,我们右键桌面的底部工具栏,然后选择启动任务管理器; 2.在弹出的Windows任务管理器选项卡中选择性能选项,在这里就可以查看电脑的CPU使用

如何让Win7系统桌面任务栏变高

  我们使用win7系统的朋友都知道在大家的桌面都会有一个半透明的显示栏目,上面是显示我们的时间声音网络状态,还有我们的开始菜单的图标等都在上面,这些图标点击就可以打开使用了,非常的方便,这个显示栏目一般都是默认的,有些用户不知道怎么就更改了任务栏的高度,变的非常不习惯,那么如何改变这个高度让它恢复呢,小编马上就给大家分享这个教程. 如何把任务栏恢复正常高度的具体方法如下: 1.大家之间用鼠标点击右键任务栏,然后选择取消锁定才能够设置,然后我们用鼠标点击桌面和任务栏相交的地方,我们看到变成一个双

margin设置为什么会宿小图片?float后其他div的文字内容怎么变位置了?

问题描述 margin设置为什么会宿小图片?float后其他div的文字内容怎么变位置了? 开始是这样 我给产品那个div设置:margin:20px后,如下,它上下扩展了20px,而左右却是自己缩小了20px,为什么会缩小 我给产品那个div float后,下面的div也跟着上来了,如下,只是后面div文字内容本来是一个居左一个居中的,为何都跑到可见部分的左和中去了? 解决方案 body设置了宽度,然后产品是在body里的,产品宽度就是body宽度减去左右padding和border,设置了m