2016-01-17 5 views
0

У меня есть следующий код, который я написал, чтобы попробовать и повернуть растровое изображение (это тест), идея состоит в том, чтобы взять растровое изображение и повернуть его на некоторое количество градусов, а затем нарисовать его на экран с помощью Win FormsВращающаяся графика/изображение в C#

protected override void OnDoubleClick(EventArgs e) 
    { 
     base.OnDoubleClick(e); 
     Graphics g = this.CreateGraphics(); 
     Bitmap b = new Bitmap(path); 
     g.Clear(Color.White); 
     imagePosition = Cursor.Position; 
     b = RotateImage(b, 45); 
     g.DrawImage(b, new Point(100, 100)); 
    } 
    public Bitmap RotateImage(Bitmap b, float angle) 
    { 
     Bitmap returnBitmap = new Bitmap(b.Width, b.Height); 
     returnBitmap.SetResolution(b.HorizontalResolution, b.VerticalResolution); 
     Graphics g = Graphics.FromImage(returnBitmap); 
     g.TranslateTransform((float)b.Width/2, (float)b.Height/2); 
     g.RotateTransform(angle); 
     g.TranslateTransform(-(float)b.Width/2, -(float)b.Height/2); 
     g.DrawImage(b, new Point(0, 0)); 
     return returnBitmap; 
    } 

это изображение перед тем вращения

, и это изображение после поворота на 45 градусов, как было показано в коде

+0

В чем проблема? Неужели изображение обрезается? – ChrisF

+0

Я так думаю, но я не знаю, почему – sgame

+0

я не понял вопрос вначале, да проблема в том, что изображение обрезается – sgame

ответ

0

тростн поскольку он становится обрезанным, так это то, что нет места для отображения его вращения. Диагональ длиннее сторон (Пифагор).

Вам нужно сделать больше места для изображения, затем оно должно отобразиться ОК. Как вы это сделаете, это будет зависеть от того, какое изображение содержится.

Смежные вопросы