rotate image by any angle vb.net
Public Class Form1
Dim wiggle As Bitmap
Dim tim As Timer
Sub MoveWiggle(sender As Object, e As EventArgs)
Static rot As Integer = 0
Panel1.Refresh()
Using g = Panel1.CreateGraphics()
Using fnt As New Font("Consolas", 12), brsh As New SolidBrush(Color.Red)
' the text will not be rotated or translated
g.DrawString($"{rot}°", fnt, brsh, New Point(10, 10))
End Using
' the image will be rotated and translated
g.TranslateTransform(100, 100)
g.RotateTransform(CSng(rot))
g.DrawImage(wiggle, -80, 0)
End Using
rot = (rot + 10) Mod 360
End Sub
Private Sub bnPause_Click(sender As Object, e As EventArgs) Handles bnPause.Click
Static isPaused As Boolean = False
If isPaused Then
tim.Start()
bnPause.Text = "Pause"
Else
tim.Stop()
bnPause.Text = "Start"
End If
isPaused = Not isPaused
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
wiggle = New Bitmap("C:\temp\path3494.png")
wiggle.SetResolution(96, 96) ' my image had a strange resolution
tim = New Timer With {.Interval = 50}
AddHandler tim.Tick, AddressOf MoveWiggle
tim.Start()
End Sub
Private Sub Form1_Closing(sender As Object, e As EventArgs) Handles MyBase.Closing
RemoveHandler tim.Tick, AddressOf MoveWiggle
tim.Dispose()
wiggle.Dispose()
End Sub
End Class