Bilder drehen in C#

Benni

Level-1
Beiträge
73
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute, leider bin ich es schon wieder,
ich sitze hier bei der Arbeit, seit 2 Tagen sitze ich vor einem Problem.
Ich bin am schreiben eines Programms in C#. Hier brauchen wir ein Bild (später eine Achse)
welches wir über eine Eingeabe eines Winkels drehen können. Der Winkel soll jedoch individuell
wählbar sein.
Ich versuche dies in einer Picturebox zu realisieren jedoch komme ich leider nicht weiter.
Ich habe schon in einigen Foren gelesen dass es andere mittels transformation in Graphics machen,
jedoch funktioniert dies bei mir nicht oder ich bin einfach nur zu doof dazu... ich stehe jedenfalls
total auf dem Schlauch und weiß nicht wie ich weitermachen kann.

Gruß Benni
 
Ich denke das sollte es tun.

Viel Spaß.

Code:
        // NumericUpDown Control
        private void nUD_ValueChanged(object sender, EventArgs e)
        {
            pictureBox1.Image = rotateImage(bmp, (float)nUD.Value);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Load Picture from Resource
            bmp = new Bitmap(System.Reflection.Assembly.GetEntryAssembly().GetManifestResourceStream("RotatePic.Resources.5.png"));
            
            // Load Picture from file
            //bmp = new Bitmap("MyImage.png");
            pictureBox1.Image = bmp;
        }

        // http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-rotate
        private Bitmap rotateImage(Bitmap b, float angle)
        {
            //create a new empty bitmap to hold rotated image
            Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
            //make a graphics object from the empty bitmap
            Graphics g = Graphics.FromImage(returnBitmap);
            //move rotation point to center of image
            g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
            //rotate
            g.RotateTransform(angle);
            //move image back
            g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
            //draw passed in image onto graphics object
            g.DrawImage(b, new Point(0, 0));
            return returnBitmap;
        }
 
Zurück
Oben