怎样用GDI+把 "理论联系实际" 这几个字填充在任意大小的矩形内?求最好的解决方案!

yxred 2006-11-02 01:33:51
我主要目的,做了一个极小的绘图软件,我想实现PhotoShop中的文字变形(只实现规则变形就行了,不用实现文字的扭曲)
...全文
205 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yxred 2006-11-14
  • 打赏
  • 举报
回复
大哥,我等!
Knight94 2006-11-04
  • 打赏
  • 举报
回复
字的变形?

方法一:
其实就是对字符所在图形的操作,例如,先按照标准字体去画,然后对字符所在的矩形区域变形操作。相当于对图片进行后期处理;

方法二:
在画字符之前,用Graphics.ScaleTransform方法修改比例坐标,从而达到变形效果。

股神 2006-11-04
  • 打赏
  • 举报
回复
up
yxred 2006-11-02
  • 打赏
  • 举报
回复
矩形拉升拖动已经解决,就是文字的缩放不知用什么方法最好。
我想要用到矩阵变换,但以前没做过,继续求解决方案!!
jedliu 2006-11-02
  • 打赏
  • 举报
回复
文字变形?就是像PS里,用鼠标拉伸压缩时的那种?
如果是这样的话,那就是图形变化,字体跟着变化,必须对图形和字体都重绘!
路人霆 2006-11-02
  • 打赏
  • 举报
回复
帮你顶。。。
跑步前进 2006-11-02
  • 打赏
  • 举报
回复
如果想在指定的范围内输出指定的字符串的话,因该是通过Graphics.DrawString结合Graphics.MeasureString函数来使用,先通过Graphics.MeasureString算出应该使用的字体大小再使用Graphics.DrawString进行输出.
关键代码如下:
Graphics.MeasureString(iOutPutString ,ifont,iTestSizeF,iStringFormat,out iMaxOutCharCount,out iMaxOutLineCount)
iGraphics.DrawString(iOutPutString ,font,brush,iRectangleF ,iStringFormat);
oolongTea 2006-11-02
  • 打赏
  • 举报
回复
自己试了一下,发现答非所问,-_-
oolongTea 2006-11-02
  • 打赏
  • 举报
回复
上面的FromARGB改为FromArgb

只要把矩形的长宽值传给DrawString方法就行了
oolongTea 2006-11-02
  • 打赏
  • 举报
回复
参考
protected override void OnPaint (System.Windows.Forms.PaintEventArgs e )
  {
  Font font = new Font("黑体",28);///定义字体:黑体,大小:28
  SolidBrush bluepen = new SolidBrush(Color.Blue);///创建蓝色画笔
  SolidBrush blackpen = new SolidBrush(Color.FromARGB(0xa0,0xa0,0xb0));///创建黑色画笔
  e.Graphics.DrawString("理论联系实际",font,blackpen,65,25);///写字符串
  
  ///偏移4个象素用不同的颜色再写一次,达到立体效果
  e.Graphics.DrawString("理论联系实际",font,bluepen,61,21);
  }
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-11-02 01:33
社区公告

让您成为最强悍的C#开发者