1.Imageコントロールで画像を拡大・縮小・移動表示・印刷する |
1.画像のサイズを取得及び Image コントロールに表示 2.画像を拡大・縮小表示する 3.画像を上下左右に移動表示する 4.Image コントロールに表示している画像の印刷(4方法) 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定:追加なし 使用 API:なし その他 : : |
1.画像のサイズを取得及び Image コントロールに表示 |
Option Explicit 'SampleNo:030 2002.04.30 @ 2006.12.28 'このページに掲載のサンプル共通の変数の宣言 Dim lngImageHeight As Long '画像の元の表示サイズ Dim lngImageWidth As Long '画像の元の表示サイズ Dim lngX As Long '画像の表示位置用 Dim lngY As Long '画像の表示位置用 Private Sub Command1_Click() 'Image コントロールに画像を表示する Image1.Move 50, 50 '初期表示位置 If lngImageHeight = 0 Then '初めてクリックした時 'Image コントロール / PictureBox に画像を読込まないで画像のサイズを取得 Dim p As Picture '表示する画像は用意しておいて下さい。 Set p = LoadPicture("..\image.jpg") '取得できるサイズの単位は、HiMetric (0.01 ミリメートル単位なので Twip に変換 lngImageHeight = CLng(Me.ScaleY(p.Height, 8, vbTwips)) '変数に元の画像サイズを記録する lngImageWidth = CLng(Me.ScaleX(p.Width, 8, vbTwips)) End If 'Image コントロールのサイズに合うように画像のサイズを変更する。 Image1.Stretch = True Image1.Height = lngImageHeight '画像のサイズに Image1 のサイズを合わせる Image1.Width = lngImageWidth '元の画像のサイズの大きさで表示する Image1.Picture = p End Sub |
2.画像を拡大・縮小表示する |
Private Sub Command2_Click() '画像を拡大表示する '拡大のMAXの設定 If lngImageHeight * 2 <= Image1.Height Then Exit Sub 'イメージのサイズが変更できるように Image1.Stretch = True 'クリックの都度10%づつ拡大する Image1.Height = Image1.Height * 1.1 Image1.Width = Image1.Width * 1.1 End Sub Private Sub Command3_Click() '画像を縮小表示する '縮小のMAXの設定 If lngImageHeight * 0.3 >= Image1.Height Then Exit Sub 'イメージのサイズが変更できるように Image1.Stretch = True 'クリックの都度10%づつ縮小する Image1.Height = Image1.Height * 0.9 Image1.Width = Image1.Width * 0.9 End Sub |
3.画像を上下左右に移動表示する |
Private Sub Command4_Click() 'クリックする度に500Twip 上に移動 Image1.Move (Image1.Left), (Image1.Top - 500) End Sub Private Sub Command5_Click() 'クリックする度に500Twip 下に移動 Image1.Move (Image1.Left), (Image1.Top + 500) End Sub Private Sub Command6_Click() 'クリックする度に500Twip 左に移動 Image1.Move (Image1.Left - 500), (Image1.Top) End Sub Private Sub Command7_Click() 'クリックする度に500Twip 右に移動 Image1.Move (Image1.Left + 500), (Image1.Top) End Sub |
4.Image コントロールに表示している画像の印刷(4方法) |
Private Sub Command8_Click() 'Image コントロールに表示している画像の印刷(4方法) Dim lngHeight As Long Dim lngWidth As Long Dim sngHZoomRitu As Single Dim sngWZoomRitu As Single 'スケールモードを 1 twip 単位に 'Image1.ScaleMode = vbTwips Printer.ScaleMode = vbTwips '用紙サイズをA4に設定 Printer.PaperSize = vbPRPSA4 '用紙方向を横向きに設定 Printer.Orientation = vbPRORLandscape '実寸で印刷 Printer.PaintPicture Image1, 0, 0 Printer.NewPage '改ページ '用紙サイズいっぱいに拡大・縮小して印刷 Printer.PaintPicture Image1, 0, 0, Printer.Width, Printer.Height Printer.NewPage '改ページ '上記だと縦横比が変化して変な形に拡大・縮小されるので 'Imageファイルの寸法を取得 lngHeight = Image1.Height lngWidth = Image1.Width '拡大・縮小率を計算 sngHZoomRitu = Printer.Height / lngHeight sngWZoomRitu = Printer.Width / lngWidth '元のサイズの縦横比で用紙いっぱいに拡大・縮小 If sngHZoomRitu < sngWZoomRitu Then lngHeight = lngHeight * sngHZoomRitu lngWidth = lngWidth * sngHZoomRitu Else lngHeight = lngHeight * sngWZoomRitu lngWidth = lngWidth * sngWZoomRitu End If 'lngWidth, lngHeightを指定すれば好みのサイズで印刷できる Printer.PaintPicture Image1, 0, 0, _ lngWidth, lngHeight Printer.NewPage '改ページ '画像ファイルを指定して印刷 Printer.PaintPicture LoadPicture("..\hina01.jpg"), 0, 0 Printer.EndDoc ' 印刷開始 End Sub ピクチャーボックス上の画像を印刷する場合は、 ピクチャーボックス上のグラフィックスを印刷する |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
Image コントロール に画像を読込まないで画像のサイズを取得 PictureBox に画像を読込まないで画像のサイズを取得 画像を実寸で印刷 画像を用紙サイズいっぱいに拡大・縮小して印刷 元のサイズの縦横比で用紙いっぱいに拡大・縮小して印刷 画像を好みのサイズで印刷 画像ファイルを指定して印刷 1.Imageコントロールを使って画像を拡大・縮小表示する 2.Imageコントロールの画像を印刷する(4方法) 3.Imageコントロールの画像を移動する 4.Imageコントロールの画像をドラッグ・アンド・ドロップで移動する |