スクリーンショットを保存する
Siv3D Advent Calendar 2013, 7 日目の記事です。
今日は Siv3D のスクリーンショットに関する機能を紹介します。
スクリーンショットを指定したファイル名で保存する
Graphics::SaveScreenshot(path) を呼ぶと、現在のフレームの描画が完了したときに、指定したファイル名でスクリーンショットが保存されます。使用できる拡張子は Image::save() と同様 bmp, png, jpg, jpeg, dds, gif, tif, tiff, tga, webp, jp2, ppm です。
第一引数のファイル名を省略した場合は Screenshot フォルダが作られ、その中にユニークなファイル名で保存されます。
# include <Siv3D.hpp> void Main() { while (System::Update()) { if (Input::KeyS.clicked) { Graphics::SaveScreenshot(L"screenshot.png"); } } }
スクリーンショットを Image 形式で取得する
スクリーンショットをアプリケーションで使うときは、ファイルを介さずに直接 Image 形式で取得しましょう。直前のフレームで Graphics::RequestScreenCapture() を呼び、次のフレームで Graphics::ReceiveScreenCapture() から Image を受け取ります。
# include <Siv3D.hpp> void Main() { bool request = false; while (System::Update()) { if (request) { request = false; const Image image = Graphics::ReceiveScreenCapture(); } if (Input::KeyS.clicked) { Graphics::RequestScreenCapture(); request = true; } } }