PictureBox旋转99.9%的人都搞不了的!
应该旋转的是图片
如果不是随意角度,直接用这个方法:pictureBox.Image.RotateFlip()
任意角度的话可参考下这个片断:
public static class ImageEx
{
public static Image GetRotateImage(this Image img, float angle)
{
angle = angle % 360;//弧度转换
double radian = angle * Math.PI / 180.0;
double cos = Math.Cos(radian);
double sin = Math.Sin(radian);
//原图的宽和高
int w = img.Width;
int h = img.Height;
int W = (int)(Math.Max(Math.Abs(w * cos - h * sin), Math.Abs(w * cos + h * sin)));
int H = (int)(Math.Max(Math.Abs(w * sin - h * cos), Math.Abs(w * sin + h * cos)));
//目标位图
Image dsImage = new Bitmap(W, H, img.PixelFormat);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(dsImage))
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//计算偏移量
Point Offset = new Point((W - w) / 2, (H - h) / 2);
//构造图像显示区域:让图像的中心与窗口的中心点一致
Rectangle rect = new Rectangle(Offset.X, Offset.Y, w, h);
Point center = new Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2);
g.TranslateTransform(center.X, center.Y);
g.RotateTransform(360 - angle);
//恢复图像在水平和垂直方向的平移
g.TranslateTransform(-center.X, -center.Y);
g.DrawImage(img, rect);
//重至绘图的所有变换
g.ResetTransform();
g.Save();
}
return dsImage;
}
}
PS:在有上面代码后,旋转30度可以这样写:pictureBox.Image=img.GetRotateImage(30);
注意:Image用后请手动释放pictureBox.Image.Dispose();否则图片大些的话,转转下内存就猛升了(一点经验,敬请笑纳)。
补充:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
PictureBox旋转99.9%的人都搞不了的!
你应该旋转的是图片
如果不是随意角度,直接用这个方法:pictureBox.Image.RotateFlip()
任意角度的话可参考下这个片断:
public static class ImageEx PS:在有上面代码后,旋转30度可以这样写:pictureBox.Image=img.GetRotateImage(30);
注意:Image用后请手动释放pictureBox.Image.Dispose();否则图片大些的话,转转下内存就猛升了(一点经验,敬请笑纳)。
本回答被提问者和网友采纳c#窗口运用程序中添加了一个picture控件怎样让它从左运动到右?_百度知 ...
在 C# 窗口应用程序中,让一个 PictureBox 控件从左到右运动可以通过编写代码来实现。以下是一种实现方式:在窗口中添加一个 PictureBox 控件,并设置其初始位置在窗口左侧。在窗口的 Form_Load 事件处理程序中,创建一个计时器(Timer),并将其启动。这个计时器将用于不断更新 PictureBox 的位置。在...
如何让C#中的picturebox方块旋转起来(让他倾斜)
} private void button1_Click(object sender, EventArgs e) { Image img = Image.FromFile(@"D:
C#winform中如何让pictureBox控件旋转一定的角度
简单点的可以用GDI旋转pictureBox显示的图片.正途: 想旋转pictureBox 那就自己写自定义的的pictureBox控件 然后可以设置旋转属性...实现呢 是通过重绘...画边框神马的 画显示的图片...等等等...
C#图片怎么翻转
“private void Form_XX_Load(object sender, EventArgs e)”函数中添加: “pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipX);pictureBox1.Refresh();”这两句就行了。
c#windows 应用程序picturebox形状怎样变成圆形
只要设置Picturebox的Region属性就可以了,如下 using System.Drawing.Drawing2D;private void button1_Click(object sender, EventArgs e){ GraphicsPath gp = new GraphicsPath();gp.AddEllipse(pictureBox1.ClientRectangle);Region region = new Region(gp);pictureBox1.Region = region;gp.Dispose();r...
C#窗体放进一个图片,怎么让它移动起来?
First : Create a PictureBox Control PictrueBox picBox = new PictrueBox();Then : Import image to 'picBox'picBox.Image = new Bitmap(File.Open("..File Path.."));Last : Use a Timer to Control the Location of 'picBox'var picTimer = new System.Windows.Forms.Timer{Interval = ...
C#picturebox中的图像怎么能随着窗体的大小而改变
首先设置PictureBox的SizeMode属性为StretchImage或者Zoom,然后在Form的sizeChange事件中,改变PictureBox的大小 就可以实现你的要求
用C#编写图片如何旋转
\/*任意角度旋转,但图片本生并不旋转,显示时候是旋转*\/ int Angle=30;\/\/Angle为旋转的角度 Graphics g = picturebox1.CreateGraphics();TextureBrush mybrush = new TextureBrush(SrcBmp);\/\/SrcBmp为原图 mybrush.RotateTransform(Angle);\/\/旋转 g.FillRectangle(mybrush, 0, 0,Picturebox1.Width...
C#picturebox如何让图片运动啊?
X或location.Y属性就OK了。比如下面的代码会让图片向左移动 (没有用时钟,不是推荐的方法,仅仅是演示原理)point p=new point(10,10);for(int i=0;i<=10;i++){ p.x+=2;你的图片.location=p;System.Threading.Thread.Sleep(100); \/\/休息0.1秒,这样是为了看到效果,否则一闪就结束了 } ...
用c#将图像旋转180度,90度
使用RotateFlip方法,具体参看MSDN Bitmap bitmap1;private void InitializeBitmap(){ try { bitmap1 = (Bitmap)Bitmap.FromFile(@"C:\\Documents and Settings\\" + "All Users\\Documents\\My Music\\music.bmp");PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;PictureBox1.Image = bitmap1;}...