[delphi(6行)转VB]如何使用VB动态生成文字图片

时间:2023-02-10 23:01:15
 delphi代码如下:

  bm := TBitMap.Create;
  bm.Canvas.Brush.Color := clRed;
  bm.Canvas.FillRect(bm.Canvas.ClipRect);
  bm.Canvas.TextOut(0, 0, '动态生成文字测试');
  bm.SaveToFile(str0 + '\a.bmp');
  bm.Free;



生成一个带文字的bmp图片
不知vb中如何操作?

9 个解决方案

#1


非常简单:
Private Sub Form_Load()

    Me.ScaleMode = 3
    Picture1.ScaleMode = 3
    Picture1.BorderStyle = 0
    Picture1.AutoRedraw = True
    'Picture1.Width = 320
    'Picture1.Height = 120
    'Picture1.CurrentX = 45
    'Picture1.CurrentY = 60
    Picture1.Print "输出文字字符!"
    SavePicture Picture1.Image, "x:\Temp\aa.bmp"
    'Unload Me

End Sub

#2


新建一个标准的 EXE工程,添加一个 PictureBox 控件,把上面的代码粘贴到窗体代码中就行了。

#3


这是照你的 delphi 代码“翻译”过来的:
Private Sub Form_Load()
    Me.ScaleMode = 3
    Picture1.ScaleMode = 3
    Picture1.BorderStyle = 0
    'Picture1.Width = 320
    'Picture1.Height = 120
'上面几句可以在设计时确定,不是必须写代码
'------------------------------------------
'  bm := TBitMap.Create;
'这句在 VB 中不要
'  bm.Canvas.Brush.Color := clRed;
'  bm.Canvas.FillRect(bm.Canvas.ClipRect);
    Picture1.BackColor = vbRed
'  bm.Canvas.TextOut(0, 0, '动态生成文字测试');
    'Picture1.CurrentX = 0
    'Picture1.CurrentY = 0
    Picture1.Print "动态生成文字测试"
'  bm.SaveToFile(str0 + '\a.bmp');
    SavePicture Picture1.Image, str0 & "a.bmp"
'  bm.Free
'这句在 VB 中不要
    'Unload Me  '可以结束程序

End Sub

#4


引用 3 楼 chen8013 的回复:
这是照你的 delphi 代码“翻译”过来的:
VB codePrivateSub Form_Load()
    Me.ScaleMode=3
    Picture1.ScaleMode=3
    Picture1.BorderStyle=0'Picture1.Width = 320'Picture1.Height = 120
'上面几句可以在设计时确定,不是必须写代码
'------------------------------------------
'  bm := TBitMap.Create;
'这句在 VB 中不要
'  bm.Canvas.Brush.Color := clRed;
'  bm.Canvas.FillRect(bm.Canvas.ClipRect);    Picture1.BackColor= vbRed'  bm.Canvas.TextOut(0, 0, '动态生成文字测试');'Picture1.CurrentX = 0'Picture1.CurrentY = 0    Picture1.Print"动态生成文字测试"'  bm.SaveToFile(str0 + '\a.bmp');    SavePicture Picture1.Image, str0&"a.bmp"'  bm.Free
'这句在 VB 中不要'Unload Me  '可以结束程序End Sub


这样是不同的,使用delphi生成图片宽度不限(如2223)
而vb是有限制的(宽度小于1024)
我要的是宽度不限的

#5


"测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试"

你用这个字符串试试,显示一行

#6


已使用dll解决了...
不知vb能作不

#7


引用 4 楼 radar2006 的回复:
这样是不同的,使用delphi生成图片宽度不限(如2223)
而vb是有限制的(宽度小于1024)
我要的是宽度不限的

没有1024的限制
你这个VB做起来很方便

#8


引用 4 楼 radar2006 的回复:
..................

这样是不同的,使用delphi生成图片宽度不限(如2223)
而vb是有限制的(宽度小于1024)
我要的是宽度不限的

VB 中图片大小好象也是没限制的。
你把我注释掉的设置图片大小的代码恢复试试:
Picture1.Width = 12000
Picture1.Height = 7200
.........

肯定能输出 12000×7200 大小的 bmp 图片。

#9


多谢楼上几位,问题解决了!

#1


非常简单:
Private Sub Form_Load()

    Me.ScaleMode = 3
    Picture1.ScaleMode = 3
    Picture1.BorderStyle = 0
    Picture1.AutoRedraw = True
    'Picture1.Width = 320
    'Picture1.Height = 120
    'Picture1.CurrentX = 45
    'Picture1.CurrentY = 60
    Picture1.Print "输出文字字符!"
    SavePicture Picture1.Image, "x:\Temp\aa.bmp"
    'Unload Me

End Sub

#2


新建一个标准的 EXE工程,添加一个 PictureBox 控件,把上面的代码粘贴到窗体代码中就行了。

#3


这是照你的 delphi 代码“翻译”过来的:
Private Sub Form_Load()
    Me.ScaleMode = 3
    Picture1.ScaleMode = 3
    Picture1.BorderStyle = 0
    'Picture1.Width = 320
    'Picture1.Height = 120
'上面几句可以在设计时确定,不是必须写代码
'------------------------------------------
'  bm := TBitMap.Create;
'这句在 VB 中不要
'  bm.Canvas.Brush.Color := clRed;
'  bm.Canvas.FillRect(bm.Canvas.ClipRect);
    Picture1.BackColor = vbRed
'  bm.Canvas.TextOut(0, 0, '动态生成文字测试');
    'Picture1.CurrentX = 0
    'Picture1.CurrentY = 0
    Picture1.Print "动态生成文字测试"
'  bm.SaveToFile(str0 + '\a.bmp');
    SavePicture Picture1.Image, str0 & "a.bmp"
'  bm.Free
'这句在 VB 中不要
    'Unload Me  '可以结束程序

End Sub

#4


引用 3 楼 chen8013 的回复:
这是照你的 delphi 代码“翻译”过来的:
VB codePrivateSub Form_Load()
    Me.ScaleMode=3
    Picture1.ScaleMode=3
    Picture1.BorderStyle=0'Picture1.Width = 320'Picture1.Height = 120
'上面几句可以在设计时确定,不是必须写代码
'------------------------------------------
'  bm := TBitMap.Create;
'这句在 VB 中不要
'  bm.Canvas.Brush.Color := clRed;
'  bm.Canvas.FillRect(bm.Canvas.ClipRect);    Picture1.BackColor= vbRed'  bm.Canvas.TextOut(0, 0, '动态生成文字测试');'Picture1.CurrentX = 0'Picture1.CurrentY = 0    Picture1.Print"动态生成文字测试"'  bm.SaveToFile(str0 + '\a.bmp');    SavePicture Picture1.Image, str0&"a.bmp"'  bm.Free
'这句在 VB 中不要'Unload Me  '可以结束程序End Sub


这样是不同的,使用delphi生成图片宽度不限(如2223)
而vb是有限制的(宽度小于1024)
我要的是宽度不限的

#5


"测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试"

你用这个字符串试试,显示一行

#6


已使用dll解决了...
不知vb能作不

#7


引用 4 楼 radar2006 的回复:
这样是不同的,使用delphi生成图片宽度不限(如2223)
而vb是有限制的(宽度小于1024)
我要的是宽度不限的

没有1024的限制
你这个VB做起来很方便

#8


引用 4 楼 radar2006 的回复:
..................

这样是不同的,使用delphi生成图片宽度不限(如2223)
而vb是有限制的(宽度小于1024)
我要的是宽度不限的

VB 中图片大小好象也是没限制的。
你把我注释掉的设置图片大小的代码恢复试试:
Picture1.Width = 12000
Picture1.Height = 7200
.........

肯定能输出 12000×7200 大小的 bmp 图片。

#9


多谢楼上几位,问题解决了!