Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Drawing2D
Public Class ImgMerg
Public Shared Function MergedImage(ByVal innerImgPath As String, ByVal outerImgPath As String, ByVal mergImgPath As String) As Boolean
Try
Dim fi As System.IO.FileInfo = New System.IO.FileInfo(mergImgPath)
If fi.Directory.Exists = False Then
fi.Directory.Create()
End If
Dim innerImg As Image = Image.FromFile(innerImgPath)
Dim outerImg As Image = Image.FromFile(outerImgPath)
Dim b As New Bitmap(outerImg.Width, outerImg.Height, PixelFormat.Format16bppRgb555)
Dim g As Graphics = Graphics.FromImage(b)
g.Clear(Color.White)
Dim p1(2) As Point
Dim p2(2) As Point
If outerImg.Width >= innerImg.Width Then
If outerImg.Height >= innerImg.Height Then
p1(0) = New Point((outerImg.Width - innerImg.Width) \ 2, (outerImg.Height - innerImg.Height) \ 2)
p1(1) = New Point((outerImg.Width + innerImg.Width) \ 2, (outerImg.Height - innerImg.Height) \ 2)
p1(2) = New Point((outerImg.Width - innerImg.Width) \ 2, (outerImg.Height + innerImg.Height) \ 2)
Else
p1(0) = New Point((outerImg.Width - innerImg.Width) \ 2, 0)
p1(1) = New Point((outerImg.Width + innerImg.Width) \ 2, 0)
p1(2) = New Point((outerImg.Width - innerImg.Width) \ 2, outerImg.Height)
End If
Else
If outerImg.Height >= innerImg.Height Then
p1(0) = New Point(0, (outerImg.Height - innerImg.Height) \ 2)
p1(1) = New Point(outerImg.Width, (outerImg.Height - innerImg.Height) \ 2)
p1(2) = New Point(0, (outerImg.Height + innerImg.Height) \ 2)
Else
p1(0) = New Point(0, 0)
p1(1) = New Point(outerImg.Width, 0)
p1(2) = New Point(0, outerImg.Height)
End If
End If
p2(0) = New Point(0, 0)
p2(1) = New Point(outerImg.Width, 0)
p2(2) = New Point(0, outerImg.Height)
g.DrawImage(innerImg, p1)
g.DrawImage(outerImg, p2)
b.Save(mergImgPath)
outerImg.Dispose()
innerImg.Dispose()
Return True
Catch ex As Exception
Return False
End Try
'测试代码
'Dim innerImgPath As String = "c:\Winter.jpg"
'Dim outerImgPath As String = "c:\17.gif"
'Dim savePath As String = "C:\merg.jpg"
'If ImgMerg.MergedImage(innerImgPath, outerImgPath, savePath) = True Then
' Dim bMerg As New System.drawing.Bitmap(savePath)
'Else
' MsgBox("错误")
'End If
End Function
End Class