![]() |
Operations on Bitmaps: Flipping a Picture |
|
Description |
|
Flipping a picture consists of changing its vertical direction. For example you may have a picture that seems to be oriented down. By flipping, you can make the picture point up: |
|
To flip a picture, get each of its pixels from one side of its vertical position and transfer it to the opposite vertical position. The horizontal position of each pixel stays the same. This can be done as follows:
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
Dim clr As Color
Dim graph As Graphics
Dim bmpSource As Bitmap
Dim bmpDestination As Bitmap
Dim x As Integer, y As Integer
Dim intHeight As Integer, intWidth As Integer
graph = pbxSource.CreateGraphics()
bmpSource = pbxSource.Image
bmpDestination =
New Bitmap(pbxDestination.ClientSize.Width,
pbxDestination.ClientSize.Height)
intWidth = bmpSource.Width
intHeight = bmpSource.Height
For x = 0 To intWidth - 1
For y = 0 To intHeight - 1
clr = bmpSource.GetPixel(x, y)
bmpDestination.SetPixel(x, intHeight - y - 1, clr)
Next
Next
pbxDestination.Image = bmpDestination
End Sub
To support picture flipping, you can call the same RotateFlip() method of the Image class. This time, you would use a different value for the argument. The member of the RotateFlipType enumeration used to flip a picture is RotateNoneFlipY. Here is an example of flipping a picture: Imports System.Drawing
Imports System.Windows.Forms
Module Exercise
Public Class Starter
Inherits Form
Dim components As System.ComponentModel.Container
Public Sub New()
InitializeComponent()
End Sub
Public Sub InitializeComponent()
End Sub
Private Sub FormPainter(ByVal sender As Object,
ByVal e As PaintEventArgs)
Handles Me.Paint
Dim bmpPicture As Bitmap = New Bitmap("Pushpin.gif")
bmpPicture.RotateFlip(RotateFlipType.RotateNoneFlipY)
e.Graphics.DrawImage(bmpPicture, 10, 10)
End Sub
End Class
Function Main() As Integer
Dim frmStart As Starter = New Starter
Application.Run(frmStart)
Return 0
End Function
End Module
|
|
|
||
| Home | Copyright © 2008-2016, FunctionX, Inc. | |
|
|
||