vb.net 合并图片


  This function takes the two images as parameters, merges them and returns the merged image:

以下函数把 两个 图片合并为一个图片:


Public Function MergeImages(ByVal Pic1 As Image, ByVal pic2 As Image) As Image

 

Dim MergedImage As Image ‘ This will be the finished merged image

 

Dim Wide, High As Integer ' Size of merged image

' Calculate Width and Height needed for composite image

' First, the Width:

Wide = Pic1.Width + pic2.Width

 

' Height: Ensure that the new image is high enough for both images

' that we plan to place inside it.

   If Pic1.Height >= pic2.Height Then

     High = Pic1.Height

   Else

     High = pic2.Height

   End If

 

' Create an empty Bitmap the correct size to hold both images side by side

Dim bm As New Bitmap(Wide, High)

' Get the Graphics object for this bitmap

Dim gr As Graphics = Graphics.FromImage(bm)

 

' Draw a black line round the outside (optional, but sometimes looks better when printed)

gr.DrawRectangle(Pens.Black, 0, 0, Wide - 1, High - 1)

' Draw the first source image at left side of new image

gr.DrawImage(Pic1, 0, 0)

' Draw second source image, offset to the right edge of first source image

gr.DrawImage(pic2, Pic1.Width, 0)

 

' Assign the merged bitmap you have just created as the image

 ' you are going to return for printing

MergedImage = bm

 

' Finished with the Graphics object – dispose of it

gr.Dispose()

 

' You now have an Image named MergedImage which you can print.

Return MergedImage

 

End Function


     The next code block is the PrintPage event of a PrintDocument component that I dragged on to the form (in this example named "PrintImageDocument").   It uses the function above to create the image.  It then sets the start position and size of the image for the printing before finally drawing the image on the Graphics object.


    Private Sub PrintImageDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintImageDocument.PrintPage

        '  First create the image using the function prepared above:

        Dim ImageToPrint As Image = MergeImages(picValues.Image, picGraph.Image)

 

        '  Now Print it - change "20, 20" to whatever X and Y position values

        '  you want as your start point for printing on the page

        Dim R As New Rectangle(20, 20, ImageToPrint.Width, ImageToPrint.Height)

        e.Graphics.DrawImage(ImageToPrint, R)

    End Sub


    And finally, in this example I used a button to fire the Print event of the PrintDocument component, which (of course) causes the image to be sent to the printer for hard copy printing.

 


      Private Sub ButtonPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPrint.Click

        Me.PrintImageDocument.Print()

    End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值