请问有制作“阴影字,边框字,镂空字”等特效字体的程序算法吗? 在网上找了好久大多是用photoshop实现的方法。有无编程算法实现各种特效字吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1。输出空心字体:procedure TForm1.Button1Click(Sender: TObject);begin Canvas.Font.Name := 'Times New Roman'; //这里的字体一定要是TrueType Font Canvas.Font.size := 72; Canvas.Font.style := [fsItalic,fsBold]; beginpath(canvas.handle); //开始捕获 Canvas上绘制的轮廓 SetBkMode( Canvas.Handle, TRANSPARENT ); canvas.TextOut(20,40,'Hello'); endpath(canvas.handle); //结束捕获 Canvas.Pen.Color := clred; StrokePath(canvas.handle); //将捕获的轮廓用当前的Pen画到Canvas上end;2。用字体开透明窟窿:procedure TForm1.Button1Click(Sender: TObject);begin canvas.Font.Name := 'Times New Roman'; canvas.Font.size := 72; canvas.Font.style := [fsItalic,fsBold]; beginpath(canvas.handle); SetBkMode(Canvas.Handle, TRANSPARENT ); //试验一下不用这行语句,会得到很有意思的结果 canvas.Polygon([Point(0,0),Point(Width,0), Point(Width,Height),Point(0,Height), Point(0,0)]); //试验不用该语句看看结果如何 canvas.TextOut(20,40,'Hello'); endpath(canvas.handle); SetWindowRgn( Handle, PathToRegion(canvas.Handle), true );end;procedure TForm1.Button1Click(Sender: TObject); Var MyMsg : String; TextW : Integer;beginImage1.Canvas.Font.Style := [fsItalic, fsBold];Image1.Canvas.Brush.Style := bsClear;Image1.Canvas.Font.Name := 'Arial Rounded MT Bold';Image1.Canvas.Font.Size := 32; MyMsg := Edit1.Text; TextW := Image1.Width div 2 - (Image1.Canvas.TextWidth(MyMsg) div 2);With Image1.Canvas Do Begin Font.Color := clBlack; TextOut(TextW, 10, MyMsg); Font.Color := clGray; TextOut(TextW - 1, 9, MyMsg); Font.Color := clGray; TextOut(TextW - 2, 8, MyMsg); Font.Color := clSilver; TextOut(TextW - 3, 7, MyMsg); Font.Color := clSilver; TextOut(TextW - 4, 6, MyMsg); Font.Color := clRed; TextOut(TextW - 5, 5, MyMsg); End;end; myling(阿德) : 两个字错开是勾边字,不是阴影字。阴影跟勾边不是同回事。 gz 将variant类型转换成memory,类似的函数该怎么写呢?大侠们给点提示吧 【请教】access中的随机数(随机记录)问题 打印走纸的问题 检测计算机问题 如何用Delphi取出一个数据库中的表名??? DBLookupComboBox的使用, 开始学delphi做聪明的程序员,先给大家散点分,祝大家新年快乐!请斑竹手下留情 怎样建立一个有纵列、横行的表?(用微软的Access)且在DBGird里显示出来. 如何抓住程序中对话框的句柄? 急!!!有沒有什么可以輕松編輯HTML或Rich格式文檔的控件? 怎么办? SQL如何操作Memo中的多行文本?
begin
Canvas.Font.Name := 'Times New Roman'; //这里的字体一定要是TrueType Font
Canvas.Font.size := 72;
Canvas.Font.style := [fsItalic,fsBold];
beginpath(canvas.handle); //开始捕获 Canvas上绘制的轮廓
SetBkMode( Canvas.Handle, TRANSPARENT );
canvas.TextOut(20,40,'Hello');
endpath(canvas.handle); //结束捕获 Canvas.Pen.Color := clred;
StrokePath(canvas.handle); //将捕获的轮廓用当前的Pen画到Canvas上
end;2。用字体开透明窟窿:
procedure TForm1.Button1Click(Sender: TObject);
begin
canvas.Font.Name := 'Times New Roman';
canvas.Font.size := 72;
canvas.Font.style := [fsItalic,fsBold];
beginpath(canvas.handle);
SetBkMode(Canvas.Handle, TRANSPARENT ); //试验一下不用这行语句,会得到很有意思的结果
canvas.Polygon([Point(0,0),Point(Width,0),
Point(Width,Height),Point(0,Height),
Point(0,0)]); //试验不用该语句看看结果如何
canvas.TextOut(20,40,'Hello');
endpath(canvas.handle); SetWindowRgn( Handle, PathToRegion(canvas.Handle), true );
end;procedure TForm1.Button1Click(Sender: TObject);
Var
MyMsg : String;
TextW : Integer;
begin
Image1.Canvas.Font.Style := [fsItalic, fsBold];
Image1.Canvas.Brush.Style := bsClear;
Image1.Canvas.Font.Name := 'Arial Rounded MT Bold';
Image1.Canvas.Font.Size := 32;
MyMsg := Edit1.Text;
TextW := Image1.Width div 2 - (Image1.Canvas.TextWidth(MyMsg) div 2);
With Image1.Canvas Do
Begin
Font.Color := clBlack;
TextOut(TextW, 10, MyMsg);
Font.Color := clGray;
TextOut(TextW - 1, 9, MyMsg);
Font.Color := clGray;
TextOut(TextW - 2, 8, MyMsg);
Font.Color := clSilver;
TextOut(TextW - 3, 7, MyMsg);
Font.Color := clSilver;
TextOut(TextW - 4, 6, MyMsg);
Font.Color := clRed;
TextOut(TextW - 5, 5, MyMsg);
End;
end;
两个字错开是勾边字,不是阴影字。阴影跟勾边不是同回事。
gz