2012-01-27 8 views
0

これは私の最初の投稿です。ここに私の問題がある。私は、データベースからバイト配列としてイメージをロードし、それをmyImageというImageオブジェクトとして格納しています。 これは問題なく、myImageが正しくロードされていることはわかっています。なぜなら、ディスクに保存すると問題なく開くことができるからです。しかし、私のアプリケーションでは、保存する必要はありませんが、 は外部アプリケーション(Windows Image Viewerなど)に送信して表示されます。私は、もちろん、一時ディレクトリにMYIMAGEを保存し、情報の引数を始めると、それを渡すことができC#で外部アプリケーションでImageオブジェクトを開く

using System.Diagnostics; 
using System.Drawing; 

// Image that is loaded from the database 
Image myImage; 

// Fiew is my external image viewing program 
Process fiew = new Process(); 
fiew.StartInfo.FileName = @"C:\Fiew.exe"; 
fiew.StartInfo.Arguments = @"C:\cube.tif"; 
fiew.Start(); 

:これは私がこれまで持っているものの抜粋です。それは機能しますが、それは私の選択肢ではありません。 それでは、開始情報引数にmyImageを代入して、ディスク上のイメージではなくFiew.exeに渡す方法はありますか?これも可能ですか?あなたの時間と助けてくれてありがとう。大変感謝しています。

+0

私はピクチャ鑑賞アプリケーションを起動するために「データのまとまり」を渡すことについて聞いたことがありません。コマンドラインの起動方法で多くのデータを渡す方法がない場合は、回避策を見つけることをお勧めします。 – JXITC

+0

@JXITC私はそれが奇妙に聞こえることは知っていますが、誰かが回避策を知っているか、少なくともそれが本当に不可能であることを確認することを望んでいます。 –

+0

プロセス間通信については、[http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx]を参照してください。 ) –

答えて

0

StartInfo.Argumentsは、バイナリデータではなく文字列の配列です。

また、実行ファイルが起動パラメータとして受け入れるものによって異なります。チャンスは、どこかのディスク上のイメージへのパスを探していることです。

+0

私はStartInfo.Argumentsをバイナリデータのロードに使用できないことを認識しています。だからこそ、私は他の方法が存在するのであればそれを探しているのです。 –

+0

@ statuskwo5しかし、あなたはfiew.exeがパラメータとして受け入れるものの慈悲ではありませんか? – LarsTech

+0

それは本当です。上記のようにStartInfo.Argumentsを使ってテストしたところ、正しく画像が開かれました。ただし、Imageオブジェクト全体を開いて送信することができればいいですが、やり直す方法や考え方がわかりません。別の手法を使用することも可能です。 –

関連する問題