2016-04-26 8 views

Antwort

0

habe ich einige für Sie die Suche und fanden diese:

public static 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 
    using(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; 
} 
+0

Dies kann funktionieren, aber es gibt einige Probleme. Wenn das Bitmap-Bild ein Rechteck ist, schneidet das neue Bitmap-Bild das Bild zuerst ab. Dies kann vermutlich dadurch gelöst werden, dass die neue Bitmap ein Quadrat der größten Seite wird. Aber selbst nachdem ich dies gemacht habe, erlebe ich Clipping. Ich würde ein Bild veröffentlichen, wenn ich könnte. – zetar

+0

Ich löste das Problem in gewisser Weise. Ich habe mein ursprüngliches Bitmap-Bild einfach zu einem Quadrat (mit extra Leerraum) gemacht. Der RotateImage-Code funktioniert jetzt ordnungsgemäß und ich blit das transformierte Bild mit Weiß als transparent. – zetar

Verwandte Themen