Girar una imagen con C# Aintzane Conde Girar una imagen con C# Girar una imagen con C# Aintzane Conde Girar una imagen con C# Se trata de crear una aplicación para poder girar una imagen un ángulo determinado; bien una única vez, bien con una lista de parámetros (aplicación de una brújula). Abrimos un nuevo proyecto de Microsoft Visual C# Express 2010. Girar una imagen con C# Aintzane Conde Para realizar esta aplicación debemos añadir al formulario un PictureBox (cuadro de dibujo) desde el Cuadro de Herramientas, que se encuentra en el lateral izquierdo de la pantalla: Extendemos el PictureBox hasta que ocupe todo el formulario. Para que este ejemplo dé el resultado que se ve a continuación, debemos ir a Ver, pinchar en Código y escribir el Código (en”Ubicación_del_archivo” debemos indicar la Ruta de acceso al archivo deseado). Girar una imagen con C# Aintzane Conde Girar una imagen con C# Aintzane Conde Código using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; using System.Drawing.Drawing2D; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); Bitmap Imagen = new Bitmap(@"C:\Ubicación_del_archivo.bmp", true); float Angulo = 30; pictureBox1.Image = rotateImage(Imagen, Angulo); } private Bitmap rotateImage(Bitmap b, float angle) { Bitmap returnBitmap = new Bitmap(b.Width, b.Height); Graphics g = Graphics.FromImage(returnBitmap); g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2); g.RotateTransform(angle); g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2); g.DrawImage(b, new Point(0, 0)); return returnBitmap; } } } También existe la opción de introducir en un Timer la acción de giro de la imagen, construyendo previamente una lista de valores (alLista es un ArrayList) que representen los ángulos a girar. Se deberán inicializar k , alLista y Angulo como variable globales: private void timer1_Tick(object sender, EventArgs e) { if (k < alLista.Count) { float Angulo = float.Parse(Convert.ToString(alLista[k])); pictureBox1.Image = rotateImage(Imagen, Angulo); k = k + 1; } else { pictureBox1.Image = rotateImage(Imagen, 0); } }