Foxtable(狐表)用户栏目专家坐堂 → [求助]关于painter窗口画图问题


  共有5168人关注过本帖树形打印复制链接

主题:[求助]关于painter窗口画图问题

帅哥哟,离线,有人找我吗?
Bin
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/25 11:32:00 [只看该作者]

两边的空白,是因为本身就是有点长方形,扫描不出来是因为太小了,不清晰.  100*100 设置为130*130即可

 回到顶部
帅哥哟,离线,有人找我吗?
云淡风轻
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:3022 威望:0 精华:0 注册:2012/1/19 10:11:00
  发帖心情 Post By:2014/3/25 12:10:00 [只看该作者]

二维码空白是另外一个问题。两个独立的问题。

之所以这样做是因为,每张图片大小不一样,在对每张图片加二维码时,画板的大小就需要根据图片调整,因为每条记录的数字档案列存放多张照片,因此根据条目的文件件数做了循环,比如第一条记录有三张图片,8-001-01.jpg,8-001-02.jpg,8-001-03.jpg,实际也就是循环三次,第一次循环画板按照8-001-01.jpg的大小动态调整,加上二维码,然后循环,画板调整成8-001-02.jpg的大小,最后再循环一次,但实际效果是,第二、三次的循环中画板大小没有调整。

 

所有这样做的目的就是一个,批量多图片加二维码,不损失原图片信息(处理后的图片和原图相比就是多了一个二维码,其他包括长款都保持不变)


 回到顶部
帅哥哟,离线,有人找我吗?
云淡风轻
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:3022 威望:0 精华:0 注册:2012/1/19 10:11:00
  发帖心情 Post By:2014/3/25 12:18:00 [只看该作者]

130*130后也会有空白的,感觉他的二维码生成就是矩形的,和商品上的二维码是正方形不一样。就算把他设置成100*130这样的矩形,还是有边缘白色,无法自适应。一张照片加上二维码,二维码是这样的样子看着也不对。现在二维码里信息少放点,不影响扫描。

 

For i As Integer = 0 To Cint(r("文件件数"))-1 '用于获取文件夹里的照片,每循环一次,对一张照片打上二维码
        If r("文件件数") = 1 Then
            fn = r("档号")
        Else If r("文件件数") > 1 And r("文件件数") < 10 Then
            fn = r("档号") & "-0" & i+1
        Else
            fn = r("档号") & i+1
        End If

     If fn <> "" And filesys.FileExists(projectpath & "电子照片\" & fn & ".jpg") = True Then
        Dim route As String = projectpath & "电子照片\" & fn & ".jpg" '原始照片存放路径
        Dim zwidth = getImage(route).width '原始照片宽
        Dim zheight = getImage(route).height '原始照片高
        Dim p As WinForm.Painter = e.Form.Controls("Painter1")
        p.Width = zwidth '原始照片宽动态赋给画板宽
        p.Height = zheight '原始照片高动态赋给画板高

        Dim g As Graphics = p.Graphics
        g.Clear(Color.White)
        g.DrawImage(getImage(route),0,0)
        g.DrawImage(bar.GetImage,(zwidth-110),(zheight-120),100,100)
        Dim rm As New prt.RenderImage '定义一个图片对象
        rm.Image = GetImage("archives.ico") '设置图片
        rm.Style.ImageAlign.StretchHorz = True '水平拉伸
        g.DrawImage(rm.Image,(zwidth-75),(zheight-85),30,30)
        Dim fnt As New Font("黑体",10,FontStyle.Bold) '黑体,10号,加粗
        g.DrawString(fn,fnt,Brushes.Black,(zwidth-120),(zheight-20))
        p.Repaint()
        p.save(route)
     End If

       Next

 

我这里根据每条记录的文件件数做循环,按理是每循环一次画板就会自动调整一次然后保存一张图片。但后两次循环没有效果。

我测试过了,用messagebox,显示出来是正确赋值的,但是画板大小没有实际调整,只第一次动态调整成功。

[此贴子已经被作者于2014-3-25 13:24:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/25 17:48:00 [只看该作者]

.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:案例.rar


 回到顶部
总数 14 上一页 1 2