あれ? どうなっているんだ。
機能的Webページを作るには、PHPやJavaを動員するのが、主流だ。だが、ASP.NETが持つ魅力は、それを凌駕するかも知れない。そんな予感がした。それが故か、ASP.NETを勉強する気になった。
ちょっと大き目なシステムを組もうと考えると、PHPやJavaで組むには、相当の技量を要求される。ASP.NETなら、Visual Basicの延長で、だらだらコードを書けば、何か出来上がる気さえする。と言う事で、ASP.NETの勉強をスタートした。
まず、Visual Basicの延長なら、演算処理が得意の筈。その結果を文字やグラフや画像で表示する。ツールボックスには、それを可能にするツールが並ぶ。文字、Chartなど沢山ある。その数は、かつてのVB6.0の比では無い。これらを使えば、グラフも簡単に出来そうだ。所が、便利な、PictureBoxが無い。どうやって、図形などの結果を表示しようか。その代役として、無理やりにも、ツールのImageを使うか。と言う事で、Imageをいじる。
まず、簡単に、ボタンをクリックすれば、直線を表示する。そこまでを考える。
プログラムは、
Protected Sub Button2_Click(sender As Object, e As System.EventArgs) Handles Button2.Click
Dim img = New Drawing.Bitmap(400, 400) '入れ物準備
Dim g = Drawing.Graphics.FromImage(img) 'ツールの準備
g.FillRectangle(Drawing.Brushes.White, 0, 0, 400, 400) '白で
g.DrawLine(Drawing.Pens.DeepPink, 20, 20, 400, 400) '直線
これで、imgには、直線が出来たはずだ。これをツールで貼り付けたImage1コントロールに代入すれば、表示されると思った。これが、まず始めの誤り。
いろいろ調べると、コントロールのImage1には、URLは入るが、イメージそのものを直接入れる事は出来ないらしい。やむなく、ファイルを経由して表示させると言うウルトラカッコ悪い方法を心みる事になる。まず、イメージファイルの作成だ。上記のリストに続けて、
img.Save("d:\Express_for_Web\test14\image\TEST.png", System.Drawing.Imaging.ImageFormat.Png)
として見た。画像は、出来た。となれば、次は、
Image1.ImageUrl = "./image/TEST.png"
g.Dispose()
End Sub
で表示される。一応、繕ったが、なんとも可笑しなプログラムだ。まず第一に、何でファイルを経由しなければならない。ネットをググるが、まだ、解決に至らない。次に、ファイルのパスだ。Saveでは、Windowsの「¥」を使い、他では、「/」とは、妙な組み合わせだ。
前途多難か、はたまた、こんなコードでも動くすごい事なのか、ろくなマニュアルが無い中、手探りは当分続きそうだ。