You are on page 1of 5

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 aplicacin para poder girar una imagen un ngulo determinado; bien una nica vez, bien con una lista de parmetros (aplicacin de una brjula). Abrimos un nuevo proyecto de Microsoft Visual C# Express 2010.

Girar una imagen con C#

Aintzane Conde

Para realizar esta aplicacin debemos aadir 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 continuacin, debemos ir a Ver, pinchar en Cdigo y escribir el Cdigo (enUbicacin_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

Cdigo
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:\Ubicacin_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; } } }

Tambin existe la opcin de introducir en un Timer la accin de giro de la imagen, construyendo previamente una lista de valores (alLista es un ArrayList) que representen los ngulos a girar. Se debern 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); } }

You might also like