c# winform任意角度图片旋转

 

public Image image;
        public Graphics g;
        private void button1_Click(object sender, EventArgs e) //执行旋转
        {
            g = this.CreateGraphics();
            g.Clear(this.BackColor);
            image = pictureBox1.Image;

            Rectangle r=new Rectangle (1,1,this .ClientSize .Width ,this .ClientSize .Height );
            PointF center=new PointF (r.Width /2,r.Height /2);
            float offsetX = center.X - image.Width / 2;
            float 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);
            g.TranslateTransform (Pcenter .X ,Pcenter .Y );     //变换绘图平面
            g.RotateTransform (Convert .ToSingle (textBox1 .Text )); //执行旋转
            g.TranslateTransform (-Pcenter .X ,-Pcenter .Y );     //恢复绘图平面
            g.DrawImage (image ,picRect );
            g.ResetTransform();
         
        }


        private void button2_Click_1(object sender, EventArgs e)   //打开图片
        {
            openFileDialog1.ShowDialog();
            pictureBox1.Image = Image.FromFile(openFileDialog1.FileName );
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值