0
可能重複:
How Take screenshot opengl game ? for Delphi如何在全屏opengl遊戲Delphi中截屏?
我需要help.I需要採取截圖全屏遊戲的OpenGL德爾福來源。
可能重複:
How Take screenshot opengl game ? for Delphi如何在全屏opengl遊戲Delphi中截屏?
我需要help.I需要採取截圖全屏遊戲的OpenGL德爾福來源。
這裏的東西我已經熟了,你有沒有指定的德爾福版本,所以這是在D2010寫的,不幸的是唯一的遊戲我是反恐精英1.6,結果是黑色圖像,但我敢肯定,你可以從這裏工作的方式(這是一個繁忙的工作,但我沒有太多的時間),所以這裏的代碼:
function TakeGameShot(const AFileName: string; const AWidth, AHeight: Integer): Boolean;
var
LPixels: array of Byte;
LLine: PByteArray;
LBitmap: TBitmap;
Index: Integer;
begin
Result := False;
LBitmap := TBitmap.Create;
try
LBitmap.PixelFormat := pf24bit;
LBitmap.Height := AHeight;
LBitmap.Width := AWidth;
// width * height * 3 bytes/pixel
SetLength(LPixels, AWidth * AHeight * 3);
// tell open gl which buffer we're interested in
glReadBuffer(GL_BACK);
// read pixels
glReadPixels(0, 0, AWidth, AHeight, GL_RGB, GL_UNSIGNED_BYTE, @LPixels);
// scan each line from bitmap
for Index := 0 to AHeight -1 do begin
LLine := LBitmap.ScanLine[ Index ];
// move data from LPixels to LLine, data size = Width * 3(bytes/pixel)
Move(LPixels[ Index * AWidth ], LLine^[0], AWidth * 3);
end; // for Index := 0 to AHeight -1 do begin
// save the bitmap
LBitmap.SaveToFile(AFileName);
// if we reached this line, we're pretty much OK
Result := True;
finally
LBitmap.Free;
end;
end;
你檢查我已經張貼到你的鏈接上一個問題? – TLama 2012-03-19 09:53:30
我需要delphi.İtsC++ :( – 2012-03-19 10:22:12