Estoy tratando de rotar un mapa de bits 90 grados con la siguiente función. El problema es que corta parte de la imagen cuando la altura y el ancho no son iguales.C# rotate bitmap 90 degrees
Aviso del returnBitmap width = original.height y su altura = original.width
Puede alguien ayudarme a solucionar este problema o señalar lo que estoy haciendo mal?
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;
}
el mapa de bits que estoy rotación es sólo para fines de visualización. Nunca lo guardo en un archivo – Kevin
; no es necesario que lo guarde; ese 'RotateFlip' hará el truco. Puede eliminar ese 'using' y agregar un' return new Bitmap (img); ' –
Puede que desee obtener un código aquí para asegurarse de que el jpeg se guarde con un nivel de calidad superior al predeterminado 50 http://stackoverflow.com/questions/1484759/quality-of-a-saved-jpg-inc-c-sharp –