圖像旋轉的C#示例

private void RotateTransform_Click(object sender, System.EventArgs e)
        
{
            Graphics graphics
=this.CreateGraphics();
            graphics.Clear(Color.White);

            
//裝入圖片
            Bitmap image=new Bitmap("nemo.bmp");

            
//獲取當前窗口的中心點
            Rectangle rect=new Rectangle(0,0,this.ClientSize.Width,this.ClientSize.Height);
            PointF center
=new PointF(rect.Width/2,rect.Height/2);

            
float offsetX=0;
            
float offsetY=0;
            offsetX
=center.X-image.Width/2;
            offsetY
=center.Y-image.Height/2;
            
//構造圖片顯示區域:讓圖片的中心點與窗口的中心點一致
            RectangleF picRect=new RectangleF(offsetX,offsetY,image.Width,image.Height);
            PointF Pcenter
=new PointF(picRect.X+picRect.Width/2,
                picRect.Y
+picRect.Height/2);
    
            
//讓圖片繞中心旋轉一週
            for(int i=0;i<361;i+=10)
            
{
                
// 繪圖平面以圖片的中心點旋轉
                graphics.TranslateTransform(Pcenter.X, Pcenter.Y);
                graphics.RotateTransform(i);
                
//恢復繪圖平面在水平和垂直方向的平移
                graphics.TranslateTransform(-Pcenter.X, -Pcenter.Y);
                
//繪製圖片並延時
                graphics.DrawImage(image,picRect);    
                Thread.Sleep(
100);
                
//重置繪圖平面的所有變換
                graphics.ResetTransform();
            }

        }
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章