以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]图片添加水印报错了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=142405)

--  作者:wldhj
--  发布时间:2019/10/25 20:06:00
--  [求助]图片添加水印报错了
我在BeforeAttachFile里写这段代码,结果报错了
        Dim file As String = e.FileName
        Dim txt As String =  e.DataRow("第一列")
        Dim img As image = getImage(file)
        Dim bmp  = new bitmap(img.Width, img.Height)
        Dim g = graphics.fromimage(bmp)
        g.DrawImage(img,0,0) 
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
        Dim fnt As new Font("微软雅黑", 60, FontStyle.Bold) 
        Dim size = g.MeasureString(txt, fnt)
        g.TranslateTransform((img.width-size.width)/2, img.Height - size.height - 50)
        Dim semiTransBrush As new System.Drawing.SolidBrush(Color.FromArgb(120, 177, 171, 171)) 
        g.DrawString(txt, fnt, semiTransBrush, new PointF(0,0))
        bmp.Dispose
        semiTransBrush.Dispose
        e.FileName=e.DataRow("第一列")
        e.SubFolder = e.DataRow("第三列")
[此贴子已经被作者于2019/10/25 20:09:00编辑过]

--  作者:有点蓝
--  发布时间:2019/10/25 20:38:00
--  
打开文件需要绝对路径!

msgbox(e.FileName)
Dim file As String = ProjectPath & "Attachments\\" & e.FileName
Dim img As image = getImage(file)

--  作者:wldhj
--  发布时间:2019/10/25 21:02:00
--  
还是报错。startIndex 不能大于字符串长度

--  作者:有点蓝
--  发布时间:2019/10/25 21:41:00
--  
这个代码不可能有这种提示。上传实例说明
--  作者:wldhj
--  发布时间:2019/10/25 21:58:00
--  
ww
[此贴子已经被作者于2019/10/25 22:02:00编辑过]

--  作者:wldhj
--  发布时间:2019/10/25 22:06:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip



--  作者:有点蓝
--  发布时间:2019/10/25 22:33:00
--  
不能在这个事件用。这里只能获取文件名,不知道是从哪里添加的文件,文件也还没有添加到Attachments,无法取得文件完整路径。

放到datacolchanged事件

If e.DataCol.Name = "第二列" Then
    If e.OldValue Is Nothing AndAlso e.NewValue > "" Then
        ‘添加水印的代码
    End If
End If

--  作者:wldhj
--  发布时间:2019/10/25 22:45:00
--  

DataColChanged没有e.FileName 属性


[此贴子已经被作者于2019/10/25 22:45:31编辑过]

--  作者:有点蓝
--  发布时间:2019/10/25 22:54:00
--  
Dim file As String = ProjectPath & "Attachments\\" & e.NewValue
msgbox(file)


--  作者:wldhj
--  发布时间:2019/10/25 23:11:00
--  
 不好意思,这两句话又怎么替换呢       
e.FileName=e.DataRow("第一列")
        e.SubFolder = e.DataRow("第三列")