ある掲示板でのお話。
その掲示板では、「カテゴリ」が選択できます。カテゴリには「Windows アプリケーション」「Web アプリケーション」という区別、「C#」「VB.NET」という言語種別があります。
その質問は、「C# - Windows アプリケーション」が選んでありました。タイトルは「画像をメモリに取り込みたい」。質問内容は、以下のようなものです。
画像を読み取ってメモリ上に byte 配列として展開したいのですが、画像をファイルから読み取る方法がわかりません。具体的に、どの様にすればよいのでしょう?
10時間半ほど、ファイルをメモリ上に展開する方法についてのやりとりが続きます。そして、10時間半後に、次のような質問が発生します。
デバッガで読み込んだデータを見ると、確かにデータはあるのですが、画像が表示されません。どうしてなのでしょう?
Stream photoStreeam = File.Open(@"C:\test.jpg");
... byte 配列に読み取る処理があって、 ...
imgPhotoPlace.ImageUrl = バイト配列;
このエントリは、私が思うところがあって、それを説明しやすいように編集しています。ここで ImageUrl というプロパティに気がついて欲しいので、ここだけ取り出しています。したがって、このエントリでは、ImageUrl というプロパティに気がついていただけると思います。しかし、掲示板でのやりとりの流れの中で、これに気がついてもらえるかどうかは、微妙だと思います。
カテゴリが「Windows アプリケーション」となっています。Windows Forms コントロールの中に、バイト配列を受け取って(正確には、Bitmap インスタンスですが)、表示するコントロールがあります。したがって、ここはスラッと流されているんじゃないか、と思います。
そして。Windows Forms コントロールに、ImageUrl というプロパティを持つコントロールはありません(MSDN 2006/Jan. で検索)。これは、System.Web.UI.WebControls 名前空間以下のコントロールが持つプロパティ、つまり、Web アプリケーション用のコントロールが使われています。
タイトルを、「急がば回れ」としました。遠回りと思われることをした方が、実際には早く目的を達成できるということです。今回は、この流れを崩さずに行くぞぉ!!
本題に戻って。さて、質問者は、本当はなにをしたいのでしょうか。最初の質問から34時間後以降、質問者からの返答はありませんので、本当はなにがしたいのかわかりません。また、問題が解決したのかどうかもわかりません。
質問の意図はわかりませんが、過去になされてきた様々な質問との類似点を探りながら、「本当にしたかったこと」を推測します。
C# で、ASP.NET にてアプリケーションを作成しています。
画面上に、画像を表示したいと思います。画像は、特定のディレクトリに保存されています。そこで、Image コントロールを画面上に配置して、ImageUrl に、画像へのパスを指定しました。しかし、画像が表示できません。
画像をメモリ上のバイト配列に取り込んで、ImageUrl に指定すれば表示できると考えたのですが、その方法がわかりません。具体的にどの様にすればよいのか、教えてください。
もし、最初の質問がこのように、最終的になにがしたいのか、それをするためになにをしたのか、なぜ質問の主題にたどり着いたのか。これらのことが書かれていたなら、最初の返答は6時間後にあるのですが、その時点で、次のような返答がついていたでしょう。
画像が保存してあるパスは、Web アプリケーションが配置してあるパスの下にありますか?
あるいは、クライアントから HTTP でアクセスできるところにありますか?
ImageUrl には、文字通り URL を指定するので、バイト配列を指定しても表示できません。画像ファイルのある場所が、クライアントから見えるかどうか、確認してください。
この時点で、「メモリ上に展開しても無意味である」ことがわかれば、後の展開は変わってくるでしょう。そして、質問者の最後の投稿は、最初から34時間後なのですが、問題の本質について討論されているなら、34時間後には解決していたことでしょう。
何をしようとしているのか。何をしたのか。どの様な結果を得たのか。どう判断したのか。・・・・・・これらのことを書くのは面倒でしょう。しかし、これを省いたために(そしてカテゴリを間違ったために)、問題の解決から遠ざかってしまったのではないでしょうか。
「初心者だから、何を書いたらいいかわからない」。よく聞きます。
だったら、面倒がらずに、全部書いてください。
余っている情報を捨てることは出来ます。しかし、捨てた情報を拾い上げることは出来ないのです。「初心者」を自称する人が、なぜ、情報の「要不要」を判断するのでしょう?
遠回りと思ったことが、本当は、近道なのです。
投稿日時 : 2006年11月27日 21:18