Tôi đang cố gắng xoay một bitmap 90 độ bằng cách sử dụng chức năng sau. Vấn đề với nó là nó cắt bỏ một phần của hình ảnh khi chiều cao và chiều rộng không bằng nhau.C# xoay bitmap 90 độ
Thông báo các returnBitmap width = original.height và nó height = original.width
bất cứ ai có thể giúp tôi giải quyết vấn đề này hoặc chỉ ra những gì tôi đang làm sai?
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;
}
bitmap Tôi quay chỉ dành cho mục đích hiển thị. Tôi không bao giờ lưu nó vào một tập tin – Kevin
bạn không cần phải lưu nó; rằng 'RotateFlip' sẽ thực hiện thủ thuật. Bạn có thể xóa 'using' và thêm' bitmap mới (img); ' –
Bạn có thể muốn lấy một số mã từ đây để đảm bảo rằng jpeg được lưu với mức chất lượng cao hơn mặc định 50 http://stackoverflow.com/questions/1484759/quality-of-a-saved-jpg-in-c-sharp –