- - PR -
画像を生成し、保存しようとすると「GDI+ で一般的なエラーが発生しました。」となる。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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アプリケーションで作成しています。 | ||||
|
投稿日時: 2004-11-01 18:48
Server.MapPath("graph.gif")で取得されるパスに書込み権限はありますか?
| ||||
|
投稿日時: 2004-11-01 21:17
burton999さん、返答ありがとうございます。
無知で申し訳ありません。 パスに書込み権限があるか調べるにはどうすればよいのでしょうか。 | ||||
|
投稿日時: 2004-11-01 22:35
graph.gifを作成するフォルダを右クリックして
「プロパティ」のセキュリティで表示されます。 | ||||
|
投稿日時: 2004-11-01 22:59
アクセス権の確認をしましょう。保存しようとしているディレクトリに、ASPNETユーザが書き込み、変更する権利はありますか? #アプリケーションがユーザを偽装しているなら、偽装しているユーザ #ああ、やっぱりかぶった それと、これは質問事項とは関係有りませんが、複数の人が同時に画像を生成しようとした場合、別々の画像が作成できますか? _________________ | ||||
|
投稿日時: 2004-11-02 09:13
burton999さん、Jittaさん、返答ありがとうございます。
ASPNETユーザーを追加し、書き込み、変更権限を与え 実行してみたらうまくいきました。 Jittaさんの質問の件ですが、 複数の人が同時に生成しようとした場合のことは考えていませんでした。 どのようにして別々の画像が作成できるようにすればよいのでしょうか。 存在チャックをかけ、あったら名前を変えるようにすればいいでしょうか。 Jittaさんでしたら、どう対応されるのかご教授いただけないでしょうか。 ずうずうしいお願いとは思いますが、よろしくお願いします。 |
1