Ich versuche eine Bitmap um 90 Grad zu drehen, indem ich die folgende Funktion benutze. Das Problem dabei ist, dass ein Teil des Bildes abgeschnitten wird, wenn Höhe und Breite nicht gleich sind.C# Bitmap um 90 Grad drehen
Beachten Sie die returnBitmap width = original.height und es ist height = original.width
Kann mir jemand helfen, dieses Problem zu lösen oder darauf hinweisen, was ich falsch mache?
private Bitmap rotateImage90(Bitmap b)
{
Bitmap returnBitmap = new Bitmap(b.Height, b.Width);
Graphics g = Graphics.FromImage(returnBitmap);
g.TranslateTransform((float)b.Width/2, (float)b.Height/2);
g.RotateTransform(90);
g.TranslateTransform(-(float)b.Width/2, -(float)b.Height/2);
g.DrawImage(b, new Point(0, 0));
return returnBitmap;
}
die Bitmap ich rotierenden bin ist nur für die Anzeige. Ich speichere es nie in einer Datei – Kevin
Sie müssen es nicht speichern; das 'RotateFlip' wird den Trick machen. Sie können das 'using' entfernen und ein' return new Bitmap (img); ' –
hinzufügen. Sie möchten vielleicht etwas Code von hier bekommen, um sicherzustellen, dass das JPEG mit einer höheren Qualitätsstufe gespeichert wird als der Standard 50 http://stackoverflow.com/questions/1484759/quality-of-a-saved-jpg-in-c-sharp –