Textureの情報をImageに渡す方法
たなだ  2016/11/12(Sat) 17:53
Imageの情報をDynamicTextureに移すにはfillなどを利用しているのですが,
DynamicTextureの情報をImageに引き渡す方法はあるのでしょうか?

画像を回転させたいと考えているのですが,画素値の値を利用したいと考えています.
こちらの情報がありましたら,こちらでもよろしいです.
よろしくお願い致します.
記事編集
Reputeless  2016/11/12(Sat) 20:31
DynamicTexture や Texture の中身にはアクセスできません。

[A]
スクリーンキャプチャを使う方法が一番簡単です。
https://github.com/Siv3D/Reference-JP/wiki/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88#%E7%9B%B4%E5%89%8D%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%92-image-%E3%81%A8%E3%81%97%E3%81%A6%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B

[B]
RenderTexture に描いた結果を DDS ファイルに保存し、それを Image で読み込むのもありです。

# include <Siv3D.hpp>

void Main()
{
const Texture texture(L"Example/Windmill.png");

RenderTexture renderTexture(640, 480, ColorF(0.0, 0.0));

Graphics2D::SetRenderTarget(renderTexture);
Graphics2D::SetBlendState(BlendState::Opaque);
{
texture.rotate(30_deg).draw();
}
Graphics2D::SetBlendState(BlendState::Default);
Graphics2D::SetRenderTarget(Graphics::GetSwapChainTexture());

// System::Update() か Graphics::Render2D() するまで実際には draw() されない
Graphics::Render2D();

// 描画されたら DDS 形式で保存。これは Image で読み込める。
renderTexture.saveDDS(L"result.dds");
}

RenderTexture ではアンチエイリアスを有効にできません。
ジャギーが気になるのであれば、大きいサイズに描画したのちに Image::scale() で縮小してください。
編集
たなだ  2016/11/15(Tue) 12:00
ご丁寧にありがとうございました.
[B]の方法を利用させて頂きました.
編集
件名
Re: Textureの情報をImageに渡す方法
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -