- PR -

画像を生成し、保存しようとすると「GDI+ で一般的なエラーが発生しました。」となる。

1
投稿者投稿内容
真哉
会議室デビュー日: 2004/11/01
投稿数: 5
投稿日時: 2004-11-01 14:20
はじめまして、真哉と申します。

画像を生成し、GIFやJPEGファイルとしてサーバ上に保存したいのですが
保存(Saveメソッド)のところでサーバーエラーとなってしまいます。
問題のソースですが

Dim white As SolidBrush = New SolidBrush(Color.White)
Dim black As SolidBrush = New SolidBrush(Color.Black)
Dim font As Font = New Font("Times New Roman", 26)

' 400x200ピクセルの仮想画面を準備
Dim bmp As Bitmap = New Bitmap(400, 200)
Dim g As Graphics = Graphics.FromImage(bmp)

' 仮想画面へ描画
g.FillRectangle(black, 0, 0, 400, 200)
g.DrawString(textbox1.Text, font, white, 50, 75)

' GIF形式でファイルに保存
bmp.Save(Server.MapPath("graph.gif"), System.Drawing.Imaging.ImageFormat.Gif)
image1.ImageUrl = "graph.gif"

としています。何かおかしいところはあるでしょうか。
エラーの詳細は

System.Runtime.InteropServices.ExternalException: GDI+ で一般的なエラーが発生しました。

と出ています。初歩的な質問と思いますが、どうかよろしくお願いします。
プロジェクトの種類はASP.NET Webアプリケーションで作成しています。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-11-01 18:48
Server.MapPath("graph.gif")で取得されるパスに書込み権限はありますか?
真哉
会議室デビュー日: 2004/11/01
投稿数: 5
投稿日時: 2004-11-01 21:17
burton999さん、返答ありがとうございます。
無知で申し訳ありません。
パスに書込み権限があるか調べるにはどうすればよいのでしょうか。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-11-01 22:35
graph.gifを作成するフォルダを右クリックして
「プロパティ」のセキュリティで表示されます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-11-01 22:59
引用:

真哉さんの書き込み(2004-11-01 14:20)より:

エラーの詳細は

System.Runtime.InteropServices.ExternalException: GDI+ で一般的なエラーが発生しました。

と出ています。初歩的な質問と思いますが、どうかよろしくお願いします。
プロジェクトの種類はASP.NET Webアプリケーションで作成しています。


 アクセス権の確認をしましょう。保存しようとしているディレクトリに、ASPNETユーザが書き込み、変更する権利はありますか?
#アプリケーションがユーザを偽装しているなら、偽装しているユーザ
#ああ、やっぱりかぶった


 それと、これは質問事項とは関係有りませんが、複数の人が同時に画像を生成しようとした場合、別々の画像が作成できますか?

_________________
真哉
会議室デビュー日: 2004/11/01
投稿数: 5
投稿日時: 2004-11-02 09:13
burton999さん、Jittaさん、返答ありがとうございます。
ASPNETユーザーを追加し、書き込み、変更権限を与え
実行してみたらうまくいきました。

Jittaさんの質問の件ですが、
複数の人が同時に生成しようとした場合のことは考えていませんでした。
どのようにして別々の画像が作成できるようにすればよいのでしょうか。
存在チャックをかけ、あったら名前を変えるようにすればいいでしょうか。
Jittaさんでしたら、どう対応されるのかご教授いただけないでしょうか。
ずうずうしいお願いとは思いますが、よろしくお願いします。
1

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