2.PictureBox コントロールで画像を拡大・縮小表示する |
1.PictureBox コントロールで画像を拡大・縮小表示する 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定:追加なし 使用 API:なし その他 : : |
1.PictureBox コントロールで画像を拡大・縮小表示する |
Option Explicit 'SampleNo:027 2002.04.29 @ 2006.12.28 Private ZoomSize As Integer '拡大縮小率 '別途コントロールのプロパティで設定でも可 Private Sub Form_Load() Form1.WindowState = vbMaximized Form1.ScaleMode = vbPixels With Picture1 '元の画像の表示用 .AutoSize = True .ScaleMode = vbPixels '必要により画像ファイルはご用意下さい Set .Picture = LoadPicture("TEST.jpg") .Visible = False '元の画像は非表示に設定 End With With Picture2 '作業用 .AutoSize = True .ScaleMode = vbPixels .AutoRedraw = True 'Set .Picture = LoadPicture("..\TEST.BMP") .Move 10, 10 End With ZoomSize = 100 Call sZoom(ZoomSize) End Sub Private Sub Command1_Click() 'クリック毎に10%づつ拡大 ZoomSize = ZoomSize + 10 If ZoomSize > 200 Then ZoomSize = 200 End If Call sZoom(ZoomSize) End Sub Private Sub Command2_Click() 'クリック毎に10%づつ縮小 ZoomSize = ZoomSize - 10 If ZoomSize < 50 Then ZoomSize = 50 End If Call sZoom(ZoomSize) End Sub Private Sub sZoom(ZoomS As Integer) Dim p1sw As Long 'Picture1.ScaleWidth Dim p1sh As Long 'Picture1.ScaleHeight Dim p1w As Long 'Picture1.Width Dim p1h As Long 'Picture1.Height '元の画像サイズを取得して、拡大縮小サイズを求める With Picture1 p1sw = .ScaleWidth * (ZoomS / 100) p1sh = .ScaleHeight * (ZoomS / 100) p1w = .Width p1h = .Height End With 'コピー先のサイズを設定する With Picture2 '枠のサイズを考慮して .Height = p1h * (ZoomS / 100) - (.Height - .ScaleHeight) .Width = p1w * (ZoomS / 100) - (.Width - .ScaleWidth) '元画像をサイズ変更して Picture2 にコピー .PaintPicture Picture1.Picture, 0, 0, p1sw, p1sh End With End Sub |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
1.Pictureコントロールで画像を拡大 2.Pictureコントロールで画像を縮小 |