以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  图片叠加问题怎样解决?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93118)

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

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

--  作者:有点蓝
--  发布时间:2016/11/21 10:42:00
--  
1、专业报表可以通过添加水印的方式加背景:http://www.foxtable.com/webhelp/scr/1198.htm
窗口打印,添加一个图片控件放置图片,置于最低层,注意不要把其它要打印的控件拖入图片框里,会打印不了的

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

--  作者:riancel
--  发布时间:2016/11/21 11:28:00
--  
那在foxtable专业报表是否有图片处理的内容呢?
在html中可以直接在图片的img中加入CSS混合模式就可以弄为加深混合效果。
img {

mix-blend-mode:darken;

}

--  作者:有点蓝
--  发布时间: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

--  作者:有点青
--  发布时间:2016/11/21 12:15:00
--  

 参考

 

http://www.foxtable.com/webhelp/scr/1482.htm