• 締切済み

グラフィックの描画をするとButtonが表示されない

グラフィックの描画をするとasp:buttonが表示されなくなったのですが、どうすれよろしいでしょうか? aspx.csファイルに下記を記述しました。 protected void Page_Load(object sender,EventArgs e) {   Bitmap bitmap = new Bitmap(100,100);   Graphics grp = Graphics.FromImage(bitmap);   grp.Clear(Color.DarkCyan);   Response.ContentType = "image/jpeg";   bitmap.Save(Response.OutputStream, ImageFormat.Gif);   bitmap.Dispose();   graphics.Dispose(); } あとはデザイン画面でボタンを1個張り付けましたが、ボタンが表示されません。 どうすればよろしいでしょうか?

みんなの回答

回答No.1

お世話になります。 現在の上記ソースでは、Response に Gif イメージを返しているだけです。 表示された画面上で 右クリック→ソースの表示 ができない事でお解かりになるかと思いますが HTML ではありません。 aspx ファイルに記載された事が Response に吐き出されていません。 Button 等が表示されていないのはその為です。 質問者様がどのような事をやりたいのかが見えません。 bitmap と Button との関係や最終的にどうしたいのかを 教えていただけないでしょうか。

shitochin
質問者

補足

説明不足で申し訳ありませんでした。 やりたいことは、グラフィックの描画とasp:button等のHTMLを1画面に表示したいだけなんです。 よろしくお願いします。

関連するQ&A

  • 再描画すると消える

    ピクチャーボックスに以下のような図形を描画するプログラムを書きました。 (PictureBox1のBackGroundImageには最初から適当なイメージが設定されています。) Dim Grp As Graphics Grp = Graphics.FromImage(Me.PictureBox1.BackgroundImage) Grp.FillEllipse(New SolidBrush(PaintSelectedColor), e.X - Me.PictureBox1.Location.X - PaintHutosa \ 2, e.Y - Me.PictureBox1.Location.Y - PaintHutosa \ 2, PaintHutosa, PaintHutosa) Grp.Dispose() Me.PictureBox1.Refresh() しかし、これを実行すると再描画されたときに消えてしまいます。 消えてしまう原因と、消えないようにする対処法をご伝授ください。

  • 動的に画像を作成し保存するには?

    Visual Basic 2012を使用しています。 下記プログラムを実行するとエラーが表示されてしまいます。 Dim img As New Bitmap(200, 100) Dim g As Graphics = Graphics.FromImage(img) g.FillRectangle(Brushes.Black, g.VisibleClipBounds) g.Dispose() PictureBox1.Image = img img.Save("E:\EPUB_test\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) img.Dispose() 表示されるエラーは下記です。 型 'System.ArgumentException' のハンドルされていない例外が System.Drawing.dll で発生しました どこが間違っているのでしょうか? 正しく動作させるにはどこを修正すべきかをお教え下さい。

  • ASP Pageの孫継承のPage_Load

    VisualStudio2010/.NET4.0で開発しています。 やりたい事  ・以下のVBのC#版を作りたい。   継承元のPage_Loadを実行させたい Public Class Base  Inherits System.Web.UI.Page   Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load    Response.Write("親Page_Load")   End Sub End Class Public Class _Default  Inherits Base   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load    Response.Write("子Page_Load")   End Sub End Class 上記のaspは実行すると画面上に「親Page_Load子Page_Load」と表示される。 だが、以下のプログラムでは「子Page」としか表示されないので困っております。 public class Base : System.Web.UI.Page {  private void Page_Load(object sender, EventArgs e)  {   Response.Write("親Page");  } } public partial class _Default : Base {  protected void Page_Load(object sender, EventArgs e)  {   Response.Write("子Page");  } } よろしくお願いいたします。

  • VB.netで図形描画ができません^^;

    初心者質問で申し訳ないです。 VB.net(Visual Studio 2005)で図形描画を行っています。 ボタン押下で図形(四角形)を描画する方法は理解できたのですが 起動時に表示するほうほうが分かりません。 どなたか教えてもらえないでしょうか? Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim g As Graphics g = PictureBox1.CreateGraphics() g.DrawRectangle(Pens.Black, 100, 50, 100, 100) g.Dispose() End Sub 上記のようにLoadから読み込むようにしましたが描画されませんでした。 よろしくお願い致します><

  • pictureboxの画像を削除するには?

    Visual C# 2008を使用しています。 ボタンを押すとpictureboxに画像が表示されるプログラムを作成しました。 今度は、その表示された画像をクリックし、別のボタンを押すことでその画像が削除できるようにしたいと思っているのですが、うまくプログラムできません。 誰か教えていただけないでしょうか? ソースコードは以下のようになっています。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace algorithm { public partial class Form1 : Form { int space = 10; public Form1() { InitializeComponent(); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void kihonsyori_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\基本処理箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 50; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void groupBox1_Enter(object sender, EventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { } private void hanpuku_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\反復箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 80; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void sentaku_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\選択箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 80; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void sakujyo_Click(object sender, EventArgs e) { pictureBox1.Image = null; space = 0; } } }

  • FileUploadを利用しての画像保存

    ASP.NET、フレームワークは.net4.0環境です。。 FileUploadコンロールを使って、POSTした画像を保存するような ものを作りたいと思っています。 FileUploadとButtonを設置して、以下のように書きました。 (C Sharpで書いたものです) --- protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { //ファイルを保存 HttpPostedFile imageData = FileUpload1.PostedFile; using (cbitmap = new Bitmap(imageData.InputStream)) { int test = bitmap.Width; bitmap.Save(@"C:\img_save\test.jpg", ImageFormat.Jpeg); } } } --- 画像のサイズが小さい時はうまくいくのですが、2MB少々のjpg画像を上記で 投稿しようとしたところ、Saveの箇所で以下のようなエラーが出てしまいます。 -- ExternalExceptionがキャッチされました。 GDI+ で汎用エラーが発生しました。 -- FileUPLoadの上限は4MBだったと思いますが、2MB程度で上記のような エラーが出てしまうのは何故でしょうか? InputStreamから、Bitmapとしているため、そこで容量を超えてしまうとか いうこともありますか…ね…? 最大3MBほどまでUP出来るようにしたいのですが、修正すべき点について アドバイスいただけないでしょうか。 宜しくお願いします。

  • VB PictureBoxの描画範囲

    VisualStudio2010のVBにて、ピクチャーボックスの範囲をプログラム中で大きくして描画をさせたいのですが、ピクチャーボックスのサイズを大きくしても、大きくした範囲には描画がされません。 やり方は↓の方法です。 まず、formにボタンとピクチャーボックスを300×200で配置して、 http://homepage1.nifty.com/rucio/main/dotnet/Samples/dnSampleKeepImage.htm ↑のページで書かれてた方法でグラフィックを再描画させています。 Public Class Form1 Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim g As Graphics = AutoGraphics(PictureBox1) PictureBox1.Width = 400 g.FillRectangle(Brushes.Black, 100, 100, 10, 10) '1つ目の図形 g.FillRectangle(Brushes.Black, 350, 100, 10, 10) '2つ目の図形 g.Dispose() End Sub Public Function AutoGraphics(ByVal picSource As PictureBox) As Graphics If picSource.Image Is Nothing Then picSource.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height) End If Return Graphics.FromImage(picSource.Image) End Function End Class これを実行すると、1つ目の図形は描画されていますが、拡大した範囲にある2つ目の図形は描画されていません。 ピクチャーボックスの範囲を大きくした所にも描画をさせたいと思っています。 よろしくお願いします。

  • VB.netでのPictuerBoxに描写した内容の保存について。

    VB.netでのPictuerBoxに描写した内容の保存について。 PictureBoxに描写した内容を保存してみると、描写した項目事態は正しく保存されているのですが、背景が真っ黒になってしまいますこれは、なぜなのでしょうか? ソースは以下の様な感じです。 Dim bmp As Bitmap Dim g As Graphics bmp = New Bitmap(PictureBox1.Width, PictureBox1.Height) PictureBox1.Image = bmp g = Graphics.FromImage(PictureBox1.Image) g.DrawLine(Pens.AliceBlue, 0, 10, 20, 10) PictureBox1.Refresh() PictureBox1.Image.Save("test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) どなたかわかる方よろしくお願いいたします。

  • VC#でのファイル保存

    private void Save_File_Click(object sender, System.EventArgs e) { if (saveFileDialog1.ShowDialog() == DialogResult.OK) {pb2.Image.Save(saveFileDialog1.FileName,ImageFormat.Jpeg);} } ↑のようにすると、「型または名前空間名 'ImageFormat' が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。」とエラーがでます。 テキストを真似てプログラムしたのですが・・・ pb2はpictureBox2です(PictureBox pb2;pb2=pictureBox2;) よろしくお願いします。

  • Visual Basic でスクリーンショット

    学生で、visual basic を勉強しているものです Button1をクリックするとスクリーンショットを1秒ごとに撮り、 "c:\iMonitoring"に保存するというプログラムを書いています (Button2をクリックすると止まる) 写真の名前を撮った時刻にしたいのですがエラーが出てうまくいきません どうしていいか分からばいので教えてください (コードです) ********************************************************************************* Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = False System.IO.Directory.CreateDirectory("C:\iMonitoring") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Enabled = True End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Timer1.Enabled = False End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim x As String = Now().ToString() Dim a As String = "C:\iMonitoring\" Dim b As String = ".bmp" Dim y As String = (a & x & b) 'Imports System.Drawing 'Imports System.Windows.Forms 'Bitmapの作成 Dim bmp As New Bitmap(Screen.PrimaryScreen.Bounds.Width, _ Screen.PrimaryScreen.Bounds.Height) 'Graphicsの作成 Dim g As Graphics = Graphics.FromImage(bmp) '画面全体をコピーする g.CopyFromScreen(New Point(0, 0), New Point(0, 0), bmp.Size) '解放 g.Dispose() '保存 bmp.Save(y) End Sub End Class