Public Function ScaleRotate(ByVal image As Bitmap, ByVal p As Single, ByVal r As Single) As System.Drawing.Bitmap Dim DestImage As New Bitmap(image.Width, image.Height) Using g As Graphics = Graphics.FromImage(DestImage) g.RotateTransform(p) g.ScaleTransform(r, r) g.DrawImage(image, 0, 0) End Using Return DestImage End Function
分類:[.NET]
こんにちは、いつもお世話になります。
画像を縮小・回転するFunctionをつくっていますが、ちょっと予想をしていなかった問題に出くわしてしまいました。例えば、次のようなFunctionで正方形の画像を45度回転すると、画像の左下がX軸の0を左に超えて見えなくなって今います。
Public Function ScaleRotate(ByVal image As Bitmap, ByVal p As Single, ByVal r As Single) As System.Drawing.Bitmap
Dim DestImage As New Bitmap(image.Width, image.Height)
Using g As Graphics = Graphics.FromImage(DestImage)
g.RotateTransform(p)
g.ScaleTransform(r, r)
g.DrawImage(image, 0, 0)
End Using
Return DestImage
End Function
うまく画像が全て見えるように必要なだけ移動させることはできるでしょうか?よろしくお願いします。