画像の保存・コピー・ペースト他 (8個) (SNo.091) 1.BMPファイルをJPG形式で保存 2.BMPファイルをメタファイル形式で保存 3.WEB上の画像ファイルを直接PictureBoxに表示する 4.PictureBoxの画像をクリップボードにコピーする 5.クリップボードの画像をPictureBoxに貼り付ける 6.画像ファイルの幅と高さを取得 (3) |
|
使用コントロール | Button1 〜 Button5 Label1 PictureBox1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) PictureBox1上に画像ファイル(*.bmp)を読み込み表示しておいて下さい。 |
1.BMPファイルをJPG形式で保存
2.BMPファイルをメタファイル形式で保存 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 'PictureBoxの表示しているBMPファイルをJPG形式で保存 'PictureBoxになにも表示していないと保存時エラーとなるのでチェック If Not (PictureBox1.Image Is Nothing) Then PictureBox1.Image.Save("..\test01.jpg", Imaging.ImageFormat.Jpeg) End If 'PictureBoxの表示しているBMPファイルをwmf形式で保存 PictureBox1.Image.Save("..\test01.wmf", Imaging.ImageFormat.Wmf) End Sub |
|
3.WEB上の画像ファイルを直接PictureBoxに表示する Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click 'WEB上の画像ファイルを直接PictureBoxにダウンロードして表示 '取得するWEB上の画像ファイルのURL Dim url As String = "http://hanatyan.sakura.ne.jp/toppicture.gif" 'WebClient クラスの新しいインスタンスを作成します Dim wc As New System.Net.WebClient '指定したURLを持つリソースからダウンロードした 'データの読み取り可能ストリームを開きます Dim st As System.IO.Stream = wc.OpenRead(url) '指定したデータストリームから Image オブジェクトを作成します PictureBox1.Image = Image.FromStream(st) '現在のストリームを閉じリソースを解放します st.Close() End Sub |
|
4.PictureBoxの画像をクリップボードにコピーする Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click 'PictureBoxの画像をクリップボードにコピーする With PictureBox1 'PictureBox1に画像が表示されていれば If Not .Image Is Nothing Then 'データをシステム クリップボードに貼り付けます Clipboard.SetDataObject(.Image, True) 'コピーできたので一旦PictureBox1の画像を消去 .Image = Nothing End If End With End Sub |
|
5.クリップボードの画像をPictureBoxに貼り付ける Private Sub Button4_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click 'クリップボードの画像をPictureBoxに貼り付ける ''現在システム クリップボードにあるデータを取得します Dim iData As IDataObject = Clipboard.GetDataObject() 'クリップボードにBMPファイルがあれば If iData.GetDataPresent(DataFormats.Bitmap) Then 'PictureBox1にクリップボードの画像を貼り付け PictureBox1.Image = CType(iData.GetData(DataFormats.Bitmap), Image) End If '--------- その他の形式の場合 ------------------------- If iData.GetDataPresent(DataFormats.EnhancedMetafile) Then MsgBox("EnhancedMetafile ファイルはあります") End If If iData.GetDataPresent(DataFormats.Text) Then MsgBox("Text ファイルはあります") End If End Sub |
|
6.画像ファイルの幅と高さを取得 (3) Private Sub Button5_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button5.Click '画像ファイルの幅及び高さを取得する Dim picWid, picHei As Integer Dim fs = New System.IO.FileStream("..\..\test.bmp", _ System.IO.FileMode.Open, System.IO.FileAccess.Read) picWid = System.Drawing.Image.FromStream(fs).Width picHei = System.Drawing.Image.FromStream(fs).Height fs.Close() Label1.Text = "幅 : " & picWid & " 高さ : " & picHei & " ピクセル" '又は下記でも取得できますがファイルがロックされてしまいますので注意して下さい。 ''画像ファイルの幅及び高さを取得する Dim bm As Bitmap = New Bitmap("..\..\test.bmp") Debug.WriteLine(bm.Width) Debug.WriteLine(bm.Height) ''画像ファイルの幅及び高さを取得する Dim ImgWidth, ImgHeight As Integer ImgWidth = Image.FromFile("..\..\test.bmp").Width() ImgHeight = Image.FromFile("..\..\test.bmp").Height() Debug.WriteLine(ImgWidth & " " & ImgHeight) End Sub |
|