画像をHTMLに変換する .NET では、画像ファイルのデータをHTMLのタグのカラー値に変換させることが可能です。この機能を使えば、画像をモザイク加工したり、テキストレベルでイメージプレビューさせることが可能です。ここでは、簡単に、「画像URL」を指定してデータ取得後、htm形式のファイルをカレントパスへ作成して、ブラウザで表示する場合での説明をしています。フォームに次の様なコードを記述します-----------VB.NETコーディングここから-------------------1.フォームに、テキストボックスコントロールと ラベルコントロールを配置します。 下記は、デフォルトのオブジェクトの名前と配置を示しています。 ┏━━━━┓ ┏━━━━┓ ┃Labale1 ┃ ┃TextBox1┃ ┗━━━━┛ ┗━━━━┛ ┏━━━━┓ ┏━━━━┓ ┃Labale2 ┃ ┃TextBox2┃ ┗━━━━┛ ┃※複数行┃ ┃ ┃ ┗━━━━┛2.テキストボックスコントロール TextBox2は、 複数行の入力とするため、 Multiline プロパティを True にします。(複数行) ScrollBars プロパティを Vertical にします。(スクロールバー)3.配置したコントロールの ラベルのテキストを入力項目にあわせて変更します。 ┏━━━━┓ ┏━━━━┓ ┃画像URL ┃ ┃TextBox3┃ ┗━━━━┛ ┗━━━━┛ ┏━━━━┓ ┏━━━━┓ ┃画像HTML┃ ┃TextBox4┃ ┗━━━━┛ ┃ ┃ ┃ ┃ ┗━━━━┛4.フォームの一番下に、ボタンコントロールを配置します。 (デフォルトのオブジェクトの名前 Button1) ┏━━━━┓ ┏━━━━┓ ┃画像URL ┃ ┃TextBox3┃ ┗━━━━┛ ┗━━━━┛ ┏━━━━┓ ┏━━━━┓ ┃画像HTML┃ ┃TextBox4┃ ┗━━━━┛ ┃ ┃ ┃ ┃ ┗━━━━┛ ┏━━━━┓ ┃Button1 ┃ ┗━━━━┛5.ボタンコントロールの text プロパティに「変換」と記述します。 ※説明用のためです。必須ではありません。 ┏━━━━┓ ┏━━━━┓ ┃画像URL ┃ ┃TextBox3┃ ┗━━━━┛ ┗━━━━┛ ┏━━━━┓ ┏━━━━┓ ┃画像HTML┃ ┃TextBox4┃ ┗━━━━┛ ┃ ┃ ┃ ┃ ┗━━━━┛ ┏━━━━┓ ┃変換 ┃ ┗━━━━┛6.ボタンコントロールをダブルクリックして、 ボタンのクリックイベントの編集を開始して、 フォームの宣言部に、次のコードを記述します。 Imports System.Net Imports System.Text Imports System.IO Imports System.Drawing さらに、次のコードを記述します。 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Try Dim strUrl As String 'URL Dim myWebClient As New WebClient 'Web Dim strHtml As String 'URLをセットします strUrl = TextBox1.Text Dim Stream1 As Stream = myWebClient.OpenRead(strUrl) '画像 Dim Bitmap1 As Bitmap = New Bitmap(Stream1) Dim x As Integer Dim y As Integer strHtml = "<html>" strHtml = strHtml & "<head></head>" strHtml = strHtml & "<body>" strHtml = strHtml & "<table border=0>" For y = 0 To Bitmap1.Height - 1 strHtml = strHtml & "<tr>" For x = 0 To Bitmap1.Width - 1 strHtml = strHtml & "<td width=1 bgcolor=" strHtml = strHtml & _ ColorTranslator.ToHtml(Bitmap1.GetPixel(x, y)) strHtml = strHtml & "></td>" Next strHtml = strHtml & "</tr>" Next strHtml = strHtml & "</table>" strHtml = strHtml & "</body>" strHtml = strHtml & "</html>" 'ページソースを表示しています TextBox2.Text = strHtml 'ディレクトリを取り出しています Dim strWorkPath As String Dim strPath As String Dim myWriter As StreamWriter strWorkPath = _ System.Reflection.Assembly.GetExecutingAssembly.Location Dim myFileInfo As New System.IO.FileInfo(strWorkPath) strPath = myFileInfo.DirectoryName & "\imghtml.htm" 'HTMLファイルを作成します。 myWriter = New StreamWriter(strPath) myWriter.Write(strHtml) myWriter.Close() 'ブラウザで表示します System.Diagnostics.Process.Start(strPath) Catch webEx As WebException 'エラー TextBox2.Text = webEx.ToString() End Try End Sub7.ビルドして実行します。8.フォームに表示された 「画像URL」欄に、取得したいURLを入力します。 ※例) http://anetm.com/m/images/yoseiwaraua2.gif9.フォームに表示された「取得」を押すと、 「画像HTML」欄に、ページソースが表示されます。10.画像をHTMLに変換したページソースファイルが同時に このアプリケーションのカレントパス(実行パス)に imghtml.htm として作成され、既定のブラウザで表示されます11.画像がテーブルタグの背景カラーでドット表示されます-----------VB.NETコーディングここまで-------------------本サンプルでは、画像が小さいことを条件としています。画像が大きいと、ループに時間を要します。また、本サンプルは、画像そのものを作成するものではなく、HTML の TABLE タグを利用したドット形式で、画像のイメージを表示します。
Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。