- - PR -
WebカスタムコントロールでImageを返す方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-01-23 17:01
お世話になります
Imageを返すWebカスタムコントロールを作ろうとしていますが うまく行きません。 コントロールはSystem.Web.UI.WebControls.WebControlを継承している為 Response.OutputStreamが使えません。 無理に、System.Web.UI.Pageに継承を変更したり、 System.Web.UI.Pageのオブジェクトを作成してもうまく行きません。 又、HtmlTextWriterへはStreamの出力は出来ないのですか。 何方か、ご存知の方よろしくお願いします。 |
|
投稿日時: 2003-01-23 17:30
コントロールでイメージは作れないと思います。
Webのページ上の画像はページ上に表示されていますが、ページを取得した後にそのページ内の情報を元に、ブラウザがページとは別に画像のデータを要求しています。HTMLのソースを見ても、画像のデータは入っていないでしょう? これ、使えませんかね? http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet04/aspnet04_03.html [ メッセージ編集済み 編集者: 一郎 編集日時 2003-01-23 17:31 ] |
|
投稿日時: 2003-01-23 17:56
一郎さん情報有難う御座いました
紹介頂いたURLは、PageクラスのResponseについて書かれていましたが Page.ResponseではImageをStreamで下記の様に返送可能です。 Bitmap bm; ・ ・ Response.ContentType="image/jpeg"; bm.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); これと同じ事が、カスタムコントロールのSystem.Web.UI.WebControls.WebControl で出来ないかなと思っているのですが。 恐らくWebユーザーコントロールでは出来ると思います。 |
|
投稿日時: 2003-01-24 06:45
済みません、少し進んだので質問の内容を変えます
下記のように呼び出し元のPageを使ってResponseが使えるようになり カスタムコントロールよりImageは表示できるようになりました。 System.web.UI.Page page=base.Page; Bitmap bm; ・ ・ page.Response.ContentType="image/jpeg"; bm.Save(page.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); しかし、その位置を任意に変更出来ません(左上に固定)。 又、継承をSystem.Web.UI.WebControls.ImageButtonに変更してみましたが、 デザイン画面上でも左上に固定されます。 多分何か処理を追加しないといけないと思いますが、まだ分かりません。 よろしくお願いします。 |
|
投稿日時: 2003-01-24 08:59
ページに含まれるコントロールが、ページの出力の種類を勝手に変えているように見えます。
rvmxさんがなさりたいことは、そのコントロールをページに貼り付けると、その他にどんなコントロールがあろうとも関係なくレスポンスを(この場合はJPG画像に)変えてしまいたいという事ですか? その作ったコントロールの他にページ内に適当な(テキストボックスとか)コントロールがあっても表示されなくないですか?やってないので分かりませんが。 |
|
投稿日時: 2003-01-24 09:37
お世話になります
この質問とそれますが、 一郎さんの疑問にお答えします。 今作っているのは、コントロールなので特定な使い方は想定していません。 使い方の例としては、 一郎さんより質問の有った複数のコントロールとの共存、これは<IMG SRC=xxx.aspx でHTMLの中に入れます(丁度アクセスカウンターと同じです)。 又、全てをImageで作成することも考えています。 |
1