Detect Image is Upside Down
Check image is upside down in VisualBasic.NET
Introduction
The following function may used to detect if an image is upside down or not.
The function will check the BitmapData.Stride
value and returned value is of a Boolean type and if the returned value of BitmapData.Stride
is greater than zero...then the bitmap is upside down. For further details about BitmapData
class, please check this link.
Function
// ''' <summary>
''' Check image is upside down
''' </summary>
''' <param name="originalBitmap">bitmap</param>
''' <returns>True, if the image is upside dwn</returns>
''' <remarks></remarks>
Private Function IsUpSideDownBitmap(originalBitmap As Bitmap) As Boolean
Dim bmp As Bitmap = CType(originalBitmap.Clone(), Bitmap)
Dim rect As Rectangle = New Rectangle(0, 0, bmp.Width, bmp.Height)
Dim bmpData As Imaging.BitmapData = bmp.LockBits
(rect, Imaging.ImageLockMode.ReadOnly, Imaging.PixelFormat.Format32bppArgb)
Return originalBitmap IsNot Nothing AndAlso bmpData.Stride > 0
End Function
Using the Code
' Define any image
Dim bmp As New Bitmap(My.Resources._29322)
' check image, the function shall return true if the image is upside down
If IsUpSideDownBitmap(bmp) Then
' do something like rotate the image or do not draw it
' the image will drawn becuase the function return True
e.Graphics.DrawImage(bmp, 0, 0)
End If