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 郭大俠 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/guodaxia/archive/2006/06/08/420867.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Vb.Net实现图片合并(相框效果)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab做信号实验需要安装那些模块_
- 下一篇: asp.net ajax控件工具集 Au