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


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

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

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


加好友 发短信
等级:婴狐 帖子:42 积分:829 威望:0 精华:0 注册:2008/10/15 19:28:00
图片叠加问题怎样解决?  发帖心情 Post By:2016/11/21 10:17:00 [只看该作者]

 想做一款身份证阅读器配套的 身份证自动复印机。
实现刷卡自动复印身份证(看到群光电子公司在用其他软件做的):
遇到的问题如下:
1.图片作为背景时怎样才能打印出背景(身份证模板)?
2.身份证阅读器出来的图片是bmp格式,且有白色背景,在叠加时要把白色背景去掉?

我做成网页时可用CSS 中的叠加 darken效果实现,
foxtable中的高级报表或窗口中怎样实现呢?

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望: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、把白色背景去掉这个比较麻烦需要用到图像处理

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


加好友 发短信
等级:婴狐 帖子:42 积分:829 威望:0 精华:0 注册:2008/10/15 19:28:00
  发帖心情 Post By:2016/11/21 11:28:00 [只看该作者]

那在foxtable专业报表是否有图片处理的内容呢?
在html中可以直接在图片的img中加入CSS混合模式就可以弄为加深混合效果。
img {

mix-blend-mode:darken;

}

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望: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

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/21 12:15:00 [只看该作者]


 回到顶部