51Testing软件测试论坛

标题: vbscript实现在图片上增加文字 [打印本页]

作者: 隐形人    时间: 2009-7-6 18:11
标题: vbscript实现在图片上增加文字
想在QTP里用vbscript实现:
读取已有的图片,并在图片的特定位置上增加一段文字说明。最好有代码辅助说明。呵呵,谢谢啦~~~
作者: fei.ge    时间: 2009-7-6 22:14
图片上增加文字,有这功能吗?

关注下....
作者: james.zhong    时间: 2009-7-7 10:41
很好奇!
作者: wenti    时间: 2009-7-7 10:56
光靠VBS 好像不行
作者: lantianwei    时间: 2009-7-7 21:10
标题: 回复 1# 的帖子
具体代码如下:
  1. Function JPG_DrawEllipseAndString(filename,str,leftlen,toplen,rightlen,bottomlen)
  2. '******************************
  3. ' Description:   Add note to a picture at specific area
  4. ' Precondition:  Install tool aspjpeg
  5. ' Input:         filename---Picture path
  6. '                str--------String to write
  7. '                leftlen----left lenth to original point
  8. '                toplen-----top lenth to original point
  9. '                rightlen---right lenth to original point
  10. '                bottomlen-bottom lenth to original point
  11. ' Output:        None
  12. ' Example:       JPG_DrawEllipseAndString("C:\org.jpg","LantianWei",100,200,500,400)
  13. ' Tester:        LantianWei
  14. ' Date:          Dec 23, 2007
  15. '******************************
  16.         Dim Jpeg,tmpleft,tmptop,tmpright,tmpbottom
  17.         Set Jpeg=CreateObject("Persits.Jpeg")
  18.         Jpeg.Open filename
  19.         Jpeg.Canvas.Pen.Color=vbRed  
  20.         Jpeg.Canvas.Pen.Width=2
  21.         Jpeg.Canvas.Brush.Solid=False '是否加粗
  22.         Jpeg.Canvas.Ellipse leftlen,toplen,rightlen,bottomlen '画椭圆
  23.        
  24.         If leftlen>Jpeg.OriginalWidth/2 Then
  25.                 tmpleft=leftlen
  26.                 tmptop=toplen+(bottomlen-toplen)/2
  27.                 If toplen+(bottomlen-toplen)/2>Jpeg.OriginalHeight/2 Then
  28.                         tmpright=leftlen-100
  29.                         tmpbottom=toplen+(bottomlen-toplen)/2-100
  30.                 Else
  31.                         tmpright=leftlen-100
  32.                         tmpbottom=toplen+(bottomlen-toplen)/2+100
  33.                 End If
  34.         Else
  35.                 tmpleft=rightlen
  36.                 tmptop=toplen+(bottomlen-toplen)/2
  37.                 If toplen+(bottomlen-toplen)/2>Jpeg.OriginalHeight/2 Then
  38.                         tmpright=rightlen+100
  39.                         tmpbottom=toplen+(bottomlen-toplen)/2-100
  40.                 Else
  41.                         tmpright=rightlen+100
  42.                         tmpbottom=toplen+(bottomlen-toplen)/2+100
  43.                 End If
  44.         End If
  45.   
  46.         Jpeg.Canvas.DrawLine tmpleft,tmptop,tmpright,tmpbottom
  47.         Jpeg.Canvas.Font.Color=vbRed   '红颜色
  48.         Jpeg.Canvas.Font.Bold=True '是否加粗
  49.         Jpeg.Canvas.Print tmpright,tmpbottom,str
  50.         Jpeg.Canvas.DrawBar 0,0,Jpeg.OriginalWidth,Jpeg.OriginalHeight
  51.         Jpeg.Save filename
  52.         Jpeg.Close
  53.         Set Jpeg=Nothing
  54. End Function
复制代码
在此应该感谢一位朋友,kernzhang,原创是他,曾经他做了个框架方面的视频,而上面有一小部分代码在视频上出现了,再感谢另外一位朋友,是他很有心,硬是把那小段代码从视频上抄下来的。而我做的只是进行了修补,完善,呵呵。。。以上代码还是有不足的地方,有心的朋友可以进行完善,然后再分享给大家。

[ 本帖最后由 lantianwei 于 2009-7-20 12:45 编辑 ]
作者: ls_721521    时间: 2009-7-8 09:31
标题: 回复 5# 的帖子
谢谢分享
作者: fei.ge    时间: 2009-7-9 00:11
标题: 回复 5# 的帖子
我在调试过程中:无法创建Persits.Jpeg对象。。。

运行脚本需要什么条件..(ASPJPEG组件?)

[ 本帖最后由 fei.ge 于 2009-7-9 00:15 编辑 ]
作者: dreamever    时间: 2009-7-9 09:28
标题: 回复 5# 的帖子
此人不是一般的强,属于禽兽级别的。
作者: lantianwei    时间: 2009-7-9 09:38
标题: 回复 7# 的帖子
' Precondition:  Install tool aspjpeg
函数有前置条件的,需要先安装第三方软件ASPJPEG
作者: lantianwei    时间: 2009-7-9 09:39
标题: 回复 8# 的帖子
要形容,词也用好听点的阿!
作者: 南拳王    时间: 2009-7-9 10:07
呵呵,这个真的很强大!!!
作者: fei.ge    时间: 2009-7-9 11:08
标题: 回复 9# 的帖子
装了aspjpeg组件试了下,很强大……
作者: liujinkui    时间: 2009-7-9 11:40
Function JPG_DrawEllipseAndString(filename,str,leftlen,toplen,rightlen,bottomlen)
End Function

执行语句:
JPG_DrawEllipseAndString("C:\org.jpg","LantianWei",100,200,500,400)
结果出错:
              Run Error
                        The test run cannot continue due to a syntax error.
                         调用过程(sub)时不能使用括号
              details<<
                Line (56): "JPG_DrawEllipseAndString      ("C:\org.jpg","LantianWei",100,200,500,400)".

执行语句:
JPG_DrawEllipseAndString "C:\org.jpg","LantianWei",100,200,500,400
去掉括号可运行

调用函数什么时间可以加括号,什么时间不加括号? 跟参数有关吗?
作者: lantianwei    时间: 2009-7-9 11:49
1. CALL JPG_DrawEllipseAndString("C:\org.jpg","LantianWei",100,200,500,400)

2.JPG_DrawEllipseAndString "C:\org.jpg","LantianWei",100,200,500,400
作者: liujinkui    时间: 2009-7-9 11:52
ASPJPEG 简介
http://baike.baidu.com/view/514985.htm
作者: liujinkui    时间: 2009-7-9 11:53
原帖由 lantianwei 于 2009-7-9 11:49 发表
1. CALL JPG_DrawEllipseAndString("C:\org.jpg","LantianWei",100,200,500,400)

2.JPG_DrawEllipseAndString "C:\org.jpg","LantianWei",100,200,500,400


但是:
   function 定义的,而非sub
作者: 隐形人    时间: 2009-7-15 14:36
不错,调试可以通过。提个新需求,不知道可不可以针对JPEG图片是的一个特定的对象写文字呢,比如说对JEPG上的一个图片作说明。呵呵
作者: lantianwei    时间: 2009-7-15 14:44
标题: 回复 17# 的帖子
在调用的时候 动态获得你要标识的对象的坐标就可以了 然后传进该函数
作者: dreamsea123    时间: 2009-7-15 17:06
关注!调试一下!
作者: rayblue    时间: 2009-7-16 14:32
学习
作者: onlonely    时间: 2009-7-18 09:43
有创意
作者: cherryqxh    时间: 2009-7-30 17:20
看来我还是学习不够认真啊,我也看了kernzhang的视频,但就是没发现那段视频,这帖子还是从百度上搜出来的,惭愧啊
作者: dabeixiong    时间: 2009-7-31 00:05
果然如禽兽般强大-.-!
虽然不是纯靠vbs吧~
作者: wendy811110    时间: 2009-7-31 08:06
标题: 回复 5# 的帖子
此人技术真的很厉害!!
学习ing ~~~~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2