以文本方式查看主题 - 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.FileNameDim 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 -- |
-- 作者:有点蓝 -- 发布时间: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("第三列") |