Vb.Net实现图片合并(相框效果)
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
posted on 2006-06-08 17:40 郭大侠 阅读(...) 评论(...) 编辑 收藏转载于:https://www.cnblogs.com/guodaxia/archive/2006/06/08/420867.html
创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖总结
以上是生活随笔为你收集整理的Vb.Net实现图片合并(相框效果)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: matlab做信号实验需要安装那些模块_
- 下一篇: WPF WebBrowser 加载 ht