スクリーンショット - Siv3D/Reference-JP GitHub Wiki

PrintScreen キーでスクリーンショットを保存する

PrintScreen キーを押すと自動でスクリーンショットが保存されます。
保存先は実行ファイルのディレクトリの Screenshot フォルダです。
この機能をオフにしたい場合は ScreenCapture::EnableScreenshot(false) を呼びます。

プレイムービーをキャプチャする

Windows 10 を使っている場合、Win + G キーを押すと Windows の機能であるゲームバーがオーバーレイ表示されます。画面の案内にしたがって操作すると、Siv3D アプリケーションの録画や録音、マイク入力音声の録音が可能です。録画されたムービーは、通常はユーザのビデオフォルダに保存されます。

直前のフレームを Texture として使う

# include <Siv3D.hpp>

void Main()
{
	while (System::Update())
	{
		Graphics::GetSwapChainTexture().draw(Alpha(200));

		Circle(Mouse::Pos(), 20).draw();
	}
}

直前のフレームを Image として取得する

スクリーンショットを Image として取得したい場合は、直前のフレームで ScreenCapture::Request() を呼び、次のフレームで ScreenCapture::GetFrame() を通して Image を受け取ります。

# include <Siv3D.hpp>

void Main()
{
	Graphics::SetBackground(Palette::White);

	DynamicTexture texture;

	Image image;

	while (System::Update())
	{
		for (int32 i = 0; i < 12; ++i)
		{
			const double radian = Radians(i * 30 + System::FrameCount());

			const Vec2 pos = Circular(100, radian) + Window::Center();

			RectF(25).setCenter(pos).rotated(radian).draw(HSV(i * 30));
		}

		if (texture)
		{
			texture.draw();

			Rect(0, 0, texture.size).drawFrame(1, 0, Palette::Gray);
		}

		if (ScreenCapture::HasNewFrame())
		{
			ScreenCapture::GetFrame(image);

			texture.fill(image.scaled(0.25));
		}

		if (Input::MouseL.clicked)
		{
			ScreenCapture::Request();
		}
	}
}

← 前の章へ戻る | - 目次 - | 次の章へ進む →

⚠️ **GitHub.com Fallback** ⚠️