4

私が得たのは、スクリーンショット作成アプリケーションのようなものです。(シリアル化に成功しました、神に感謝します!!!)ボタンがクリックされると、処理クラスのメソッドにアクセスしてスクリーンショットが撮られます。ここで注意が必要なのは、クラスに上記の結果を操作するための別のメソッドがあることです。それぞれの処理メソッドが呼び出されたときにウィンドウが作成(表示)され、ビットマップイメージがそのウィンドウ。問題は、これまでのところ、WPFでは、画像コントロールのソースを画像を格納する変数に関連付けることができないことに気づきました。最初に保存したり、URIを取得したりせずに、その変数に保存されている画像を表示するにはどうすればよいですか。?

4

2 に答える 2

5

メモリストリームからイメージを作成する必要があります。これは多くの人によって十分に文書化されています。ここにあなたが始めるかもしれない2つのリンクがあります:

http://forums.silverlight.net/forums/p/44637/166282.aspx

http://www.wpftutorial.net/Images.html

于 2010-02-23T22:15:03.073 に答える
2

リンクスラッグスターをありがとう。これが私がそれをした方法です:

MemoryStream ms = new MemoryStream();
sBmp = gBmp; //note: gBmp is a variable that stores the captured image and passes it on to the method that uses sBMP as a distribuitor of the variable holding the captured image data
//variable that holds image
sBmp.Save(ms,ImageFormat.Bmp);
//my buffer byte
byte[] buffer = ms.GetBuffer();
//Create new MemoryStream that has the contents of buffer
MemoryStream bufferPasser = new MemoryStream(buffer);
//Creates a window with parents classthatholdsthismethod and null
Edit childEdit = new Edit(this, null);
childEdit.Show();
//I create a new BitmapImage to work with
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = bufferPasser;
bitmap.EndInit();
//I set the source of the image control type as the new BitmapImage created earlier.
childEdit.imgImageCanvas.Source = bitmap;
childEdit.Activate();

基本的に、これらのページで見つけたものと、bmpをmemstreamに渡す方法について見つけた情報を組み合わせました。私はこれを100%動作させました:)

于 2010-02-24T09:58:59.653 に答える