Foxtable(狐表)用户栏目专家坐堂 → 图片叠加问题怎样解决?


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

主题:图片叠加问题怎样解决?

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


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/21 10:42:00 [显示全部帖子]

1、专业报表可以通过添加水印的方式加背景:http://www.foxtable.com/webhelp/scr/1198.htm
窗口打印,添加一个图片控件放置图片,置于最低层,注意不要把其它要打印的控件拖入图片框里,会打印不了的

2、把白色背景去掉这个比较麻烦需要用到图像处理

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


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/21 12:02:00 [显示全部帖子]

狐表没有这方面图像处理帮助。

参考下下面代码自己改改,不过注意背景必须是纯白色(255,255,255),不然处理不了

Dim pic As WinForm.PictureBox = e.Form.Controls("PictureBox1")
try
    Dim SourceBitmap As Bitmap = pic.Image
    Dim ForOutBitmap As new Bitmap(SourceBitmap)
    Dim bmpDATA = new Imaging.BitmapData()
    bmpDATA = ForOutBitmap.LockBits(new Rectangle(0, 0, SourceBitmap.Width - 1, SourceBitmap.Height - 1), Imaging.ImageLockMode.ReadOnly, Imaging.PixelFormat.Format32bppArgb)
    Dim BTS(bmpDATA.Stride * bmpDATA.Height + 1) As Byte
    System.Runtime.InteropServices.Marshal.Copy(bmpDATA.Scan0, BTS, 0, BTS.Length - 1)
    Dim tmpValue As Byte
    For i As Integer = 0 To BTS.Length - 4 Step 4
        If BTS(i) = 255 And BTS(I + 1) = 255 And  BTS(I + 2) = 255
            BTS(I + 3) = tmpValue
        End If
    Next
    System.Runtime.InteropServices.Marshal.Copy(BTS, 0, bmpDATA.Scan0, BTS.Length - 1)
    ForOutBitmap.UnlockBits(bmpDATA)
    pic.Image = ForOutBitmap
catch ex As Exception  
    msgbox(ex.message)
End try

 回到顶部