- PR -

System.Drawing.Imageのファイル割り当て

1
投稿者投稿内容
kost
会議室デビュー日: 2002/01/09
投稿数: 17
投稿日時: 2003-11-13 09:08
お世話になっております。

開発環境はVS.NET2002,C#です。

System.Drawing.Image.FromFileでネットワーク越しのファイルを
割り当てたいのですが、単純に"ftp://XXXX/aaa.jpg"(ftpサイトにある)
と指定すると、「指定されたパスのフォーマットはサポートされていません。」
というエラーになってしまいます。
どのように指定をすれば良いのでしょうか?
それとも他の方法で割り当てる方法があるのでしょうか?

ご存知の方がいらっしゃいましたらご教授願います。


[ メッセージ編集済み 編集者: kost 編集日時 2003-11-13 09:11 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2003-11-13 11:02
引用:

kostさんの書き込み (2003-11-13 09:08) より:

System.Drawing.Image.FromFileでネットワーク越しのファイルを
割り当てたいのですが、単純に"ftp://XXXX/aaa.jpg"(ftpサイトにある)
と指定すると、「指定されたパスのフォーマットはサポートされていません。」
というエラーになってしまいます。
どのように指定をすれば良いのでしょうか?
それとも他の方法で割り当てる方法があるのでしょうか?



"ftp://〜"はURIでファイルのパスではないので、
Image.FromFileメソッドでは扱えないと思います。

ftpからのダウンロードのStreamを取得した上で、
Image.FromStreamメソッドで読み込んではいかがでしょうか?

System.Net名前空間のクラスをざっと探してみた範囲では、
ftpを扱えるクラスが見当たりませんでした。
(WebClientやWebRequestクラスの派生クラス等)

FTPの実装に関しては、MSサイトの最新のHOWTOに下記のものがあがっていたので、
これを使ってみるOr参考にするとよいかもしれません。
http://support.microsoft.com/default.aspx?scid=kb;ja;812404
[HOWTO] Visual Basic .NET を使用してプラグ可能なプロトコルを記述し、
マネージ クラスで FTP をサポートする方法
kost
会議室デビュー日: 2002/01/09
投稿数: 17
投稿日時: 2003-11-13 11:29
引用:

よねKENさんの書き込み (2003-11-13 11:02) より:

ftpからのダウンロードのStreamを取得した上で、
Image.FromStreamメソッドで読み込んではいかがでしょうか?



よねKENさん、早速のご回答ありがとうございます。
紹介していただいた方法を参考に解決しました。
※ftpだと使い勝手が良くないので、仮想ディレクトリを作成しました。

ありがとうございました。

参考までに
------------------------------------------------------------
String szUri= "http://XXXX/aaa.jpg";

// Create WebRequest
WebRequest w = WebRequest.Create(szUri);
WebResponse r = w.GetResponse();
Stream respstream = r.GetResponseStream();
if(respstream.CanRead)
{
  picture.Image = System.Drawing.Image.FromStream(respstream);
}
1

スキルアップ/キャリアアップ(JOB@IT)