Я хотел бы использовать GDI + для рендеринга изображения в фоновом потоке. Я нашел этот пример о том, как повернуть изображение с помощью GDI +, и это операция, которую я хотел бы сделать.
private void RotationMenu_Click(object sender, System.EventArgs e)
{
Graphics g = this.CreateGraphics();
g.Clear(this.BackColor);
Bitmap curBitmap = new Bitmap(@"roses.jpg");
g.DrawImage(curBitmap, 0, 0, 200, 200);
// Create a Matrix object, call its Rotate method,
// and set it as Graphics.Transform
Matrix X = new Matrix();
X.Rotate(30);
g.Transform = X;
// Draw image
g.DrawImage(curBitmap,
new Rectangle(205, 0, 200, 200),
0, 0, curBitmap.Width,
curBitmap.Height,
GraphicsUnit.Pixel);
// Dispose of objects
curBitmap.Dispose();
g.Dispose();
}
Мой вопрос состоит из двух частей:
Как бы вы достигли this.CreateGraphics()
в фоновом потоке? Является ли это возможным? Насколько я понимаю, в этом примере объект пользовательского интерфейса this
. Так что, если я делаю эту обработку в фоновом потоке, как бы я создал графический объект?
Как мне затем извлечь растровое изображение из графического объекта, который я использую, когда я закончу обработку? Мне не удалось найти хороший пример того, как это сделать.
Также: при форматировании кода, как добавить новые строки? Если бы кто-то мог оставить мне комментарий, объясняющий, что я действительно ценю это. Спасибо!