2012-03-08 2 views
0

Я пытаюсь использовать графический объект для загрузки изображения, а затем его поворот (портретный или альбомный), а затем отображение его на панели (а не в окне изображения).Использование графики для загрузки изображения и поворота его на панель

Как загрузить графику в панель? И каким будет самый простой способ сделать пейзаж или портретное вращение на графическом объекте?

GDI должен использоваться для поворота и работы с изображением, мне нужен способ получить объект Graphics в панель.

+1

Winforms, asp.net, МОФ, ...? – Msonic

+0

Gtk-Sharp? Каир? XWT? OpenGL? WebkitSharp? Вам нужно еще несколько тегов – IanNorton

+0

Обновлено, спасибо, что указали это. – JamieB

ответ

2

Используйте Paint событие панели:

private void panel1_Paint(object sender, PaintEventArgs e) 
    { 
     int angle = 90; 
     Graphics g = e.Graphics; 
     Image i = new Bitmap(@"C:\Jellyfish.jpg"); 
     g.TranslateTransform((float)i.Width/2, (float)i.Height/2); 
     g.RotateTransform(angle); 
     g.TranslateTransform(-(float)i.Width/2, -(float)i.Height/2); 
     g.DrawImage(i, new Point(0,0)); 

    } 
+0

Разве это не обрезание исходного изображения при повороте? –

1

Поскольку вы говорите о панели, и это C#, я угадаю, что вы имеете в виду WinForms.

Вы можете вращать любой Image экземпляр, используя метод RotateFlip, и вы можете использовать Image как BackgroundImage вашей панели. Рабочий пример:

Bitmap bitmap = new Bitmap(@"D:\word.png"); 
bitmap.RotateFlip(RotateFlipType.Rotate90FlipNone); 
Form form = new Form() { Height = 400, Width = 600 }; 
Panel p = new Panel() { Height = 400, Width = 600, Left = 0, Top = 0}; 
form.Controls.Add(p); 
p.BackgroundImage = bitmap; 
form.Show(); 
+0

Спасибо, хотя важно, чтобы я использовал GDI для работы с изображением :) – JamieB

+0

Вы не можете использовать метод RotateFlip по какой-то причине? – driis

+0

Нет В настоящее время я использую метод, который вы предлагаете, но это требование, чтобы я использовал GDI для управления изображением. После поворота (портрет или альбомная) его необходимо загрузить в панель. GDI вместо метода RotateFlip Я хочу сказать. – JamieB

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