Professional Documents
Culture Documents
Aintzane Conde
Aintzane Conde
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).
Aintzane Conde
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); } }