- - PR -
ImageConverterでバイト配列を取得しようとするとエラー(ASP.NET、C#2.0)
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-04-14 17:31
こんにちは。
ASP.NETで、画像ファイルを動的に出力しようとしています。 テストとして、
のコード書きました。 参考にしたのは、 http://www.atmarkit.co.jp/fdotnet/dotnettips/603byteimage/byteimage.html です。 ところが、
のところで、「GDI+で汎用エラーが出ました」とのエラー表示となってしまいます。 どうしてエラーとなってしまうのか、私には理解がでません。 どなたか、ご教授をお願いします。 また、C#は今月になって初めて使ったのですが、 FileStreamのパスで「c:\aaa.jpg」のように、「\(円マーク)」マークが入っていると、無効な文字としてエラーとなってしまいます。 「\(円マーク)」の代わりに「/(スラッシュ)」を入れると、エラーとならなくなるのですが、これは正しいのでしょうか? よろしくお願いします。 [ メッセージ編集済み 編集者: 由加 編集日時 2008-04-14 17:32 ] | ||||||||
|
投稿日時: 2008-04-14 17:43
> FileStreamのパスで「c:\aaa.jpg」のように、「\(円マーク)」マークが入っていると、無効な文字としてエラーとなってしまいます。
C#の場合、"\" はエスケープ文字に使用される特別な文字 (例えば "\t" でタブ文字) なので、文字列の中で "\" を使う場合、"\\" と記述します。 つまり、"c:\aaa.jpg" は "c:\\aaa.jpg" と記述します。 また、@"c:\aaa.jpg" という書き方も OK です。このように @ を付けると、"\" が普通に記述できます。 [参考] 文字列の使用 (C# プログラミング ガイド) # 最初の行(コンパイル時のエラーですよね?)を削除しました。 # 実行時のエラーですね。 _________________ C#と諸々 [ メッセージ編集済み 編集者: よこけん 編集日時 2008-04-14 17:48 ] | ||||||||
|
投稿日時: 2008-04-14 17:47
ありがとうございます。
早速試して、「\」マークの件は解決しました。 掲示板に書き込みをすると、¥マークが\になってしまうので、 なかなか、伝えにくいですね。 | ||||||||
|
投稿日時: 2008-04-14 17:50
ストリームから Image オブジェクトを作成した場合、元となるストリームが Close されてれば保存できなかったと思います。
FileStream の Close を遅らせるなり、一旦 MemoryStream に読み込ませるなりする必要があるでしょう。 | ||||||||
|
投稿日時: 2008-04-14 17:55
ありがとうございます。
Closeを遅らせたら、解決しました。 ImageConverterで検索していて・・・。 まるっきり、検討違いのところに答えがありました。 本当に、ありがとうございました。 |
1