No.1
监控大屏并不陌生,由于视频监控是一个一个监视器拼接而成,所以呈现出一些特殊的效果。
屏幕和屏幕之间有一条黑线,当然目前些全面屏已经实现无缝拼接效果,整体显示效果也十分流畅。
完成效果

本节介绍一下利用VBA来制作一个拼接显示效果。
其中,用天一张图片,并且要对此图片做切片处理,分别切成若干张小图片。
这一步要利用PS来制作,当然也可以利用其它图片处理软件。
下图为切片示例

保存为*.jpg格式文件,本示例切为9张不同的图片。
接下来,利用VBA编码来对图片进行拼装。
其利用了LoadPicture方法。
.Picture = LoadPicture(ImgPath & pObj.Name & ".jpg")
实际上就是把9张图片按照相应的顺序进行显示。
重点要设置边框,不然没有拼接效果,会显示为一张完整的图片。

No.2
代码
Private Sub UserForm_Initialize()
With Me
.Width = 820
.Height = 550
.Caption = "拼接屏效果"
End With
With Me.Label1
.Top = 10
.Left = 0
.Width = Me.Width
.Height = 45
.Caption = "拼接屏效果"
.TextAlign = fmTextAlignCenter
.ForeColor = RGB(21, 202, 111)
With .Font
.Size = 24
.Name = "微软雅黑"
.Bold = True
End With
End With
Dim pObj As Object
Dim i As Integer, ImgPath As String, pTop As Long, pLeft As Long, pNum As Integer, pN As Long
Dim pColor As Long
pColor = 8211322
pN = 9 '图片总数
pNum = 3 '图片列数
pTop = 80 '图片上边距
pLeft = 100 '图片左边距
ImgPath = ThisWorkbook.Path & "\pic\images\" '图片保存地址
For i = 1 To pN
Set pObj = Me.Controls.Add("Forms.image.1", "b2_0" & i)
With pObj
.Picture = LoadPicture(ImgPath & pObj.Name & ".jpg")
.Width = 200
.Height = 120
.PictureSizeMode = 1
.BorderColor = pColor
.BorderStyle = 1
If i <= 3 Then
.Top = pTop
.Left = (i - 1) * .Width + pLeft
ElseIf i <= 6 Then
.Top = pTop + .Height
.Left = (i - ((pNum * 1) + 1)) * .Width + pLeft
Else
.Top = pTop + 2 * .Height
.Left = (i - ((pNum * 2) + 1)) * .Width + pLeft
End If
End With
Next i
End Sub
如上代码放入UserForm_Initialize()事件里,本事件是Form表单事件,工作机制为当对话框装载前执行的代码。
利用图片可使应用程序人机交互性更加友好,所以要认真学好图片相关操作方法。
欢迎关注、收藏
---END---