VB.NET - Создание, изменение размера и добавление изображений - PullRequest
1 голос
/ 25 февраля 2010

У меня есть два файла bmp:

  1. footer.bmp: 200 x 200
  2. product.bmp: 1000 x 1000

Я хочу создать новый bmp-файл с размером 200 x 500:

  1. Добавьте footer.bmp внизу нового изображения - позиция (0, 300)
  2. Измените размер product.bmp до 200 x 300 и поместите в (0, 0)

Как мне это сделать с помощью VB.NET?

Dim oBitmap As New Bitmap(200, 500)
Dim oGraphics As Graphics

oGraphics = Graphics.FromImage(oBitmap)

...?

1 Ответ

0 голосов
/ 25 февраля 2010
Dim Path As String = "C:\Delivery\"
Dim Height As Integer = 400

Using oFooter As System.Drawing.Image = Drawing.Image.FromFile(Path + "Footer.png")

    Dim Width As Integer = oFooter.Width

    Using oBitmap As New Bitmap(Width, Height)

        Using oGraphic As Graphics = Graphics.FromImage(oBitmap)

            Using oBrush As New SolidBrush(Color.White)
                oGraphic.FillRectangle(oBrush, 0, 0, Width, Height)
            End Using

            oGraphic.DrawImage(oFooter, 0, 300)

            Using oProduto As System.Drawing.Image = Drawing.Image.FromFile(Path + "Produto.png")

                Dim pWidth As Integer = oProduto.Width
                Dim pHeight As Integer = oProduto.Height

                If pWidth > Width Then
                    pHeight = CInt(pHeight * Width / pWidth)
                    pWidth = Width
                End If

                If pHeight > Height Then
                    pWidth = CInt(pWidth * Height / pHeight)
                    pHeight = Height
                End If

                Dim x As Integer = CInt((Width - pWidth) / 2)
                Dim y As Integer = CInt((Height - oFooter.Height - pHeight) / 2)

                oGraphic.DrawImage(oProduto, x, y, pWidth, pHeight)

            End Using

            oBitmap.Save(Path + "Final.jpg", Imaging.ImageFormat.Jpeg)

        End Using

    End Using

End Using
...