Как сделать снимок экрана с OpentkC#

Место общения программистов C#
Ответить
Anonymous
 Как сделать снимок экрана с Opentk

Сообщение Anonymous »

Я пришел сюда из того, как запечатлеть изображение, нарисованное с помощью Opentk. Во -первых, в примере у меня нет доступа к объекту «GLControl1». Мое главное окно наследует от opentk.windowing.desktop.gamewindow. Далее, изображение, которое я получаю, кажется действительно размытым и имеет повторяющиеся изображения по горизонтали. Наконец, я не могу получить доступ ко всем членам и полям, которые использовали пример, поэтому я извлекал их по -разному, и я не уверен, являются ли они одинаковыми или нет. < /P>
Вот моя версия «tabscreenshot ()», но у меня нет решения «glrefresh ()» < /p>
public Bitmap TakeScreenshot()
{
if (this.Context == null)
throw new Exception("the \"Context\" was null ");
int w = Size.X;
int h = Size.Y;

Box2i boxFromGameWindow = this.ClientRectangle;

Vector2i bottomCoordinate = boxFromGameWindow.Min;
Vector2i topCoordinate = boxFromGameWindow.Max;
Vector2i sizeOfWindowVector = boxFromGameWindow.Size;
Point topLeftPoint = new Point(bottomCoordinate[0], topCoordinate[1]);
Size sizeOfWindow = new Size(sizeOfWindowVector[0], sizeOfWindowVector[1]);

Rectangle convertedRectangle = new Rectangle(0, 0, sizeOfWindowVector[0], sizeOfWindowVector[1]);

Bitmap bmp = new Bitmap(sizeOfWindowVector[0], sizeOfWindowVector[1]);
System.Drawing.Imaging.BitmapData data =
bmp.LockBits(convertedRectangle, System.Drawing.Imaging.ImageLockMode.WriteOnly, bmp.PixelFormat);

GL.ReadPixels(0, 0, sizeOfWindowVector[0], sizeOfWindowVector[1], PixelFormat.Rgb, PixelType.UnsignedByte, data.Scan0);
bmp.UnlockBits(data);

bmp.RotateFlip(RotateFlipType.RotateNoneFlipY);

return bmp;
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... ith-opentk
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»