TOP > カテゴリ > Visual Basic >

画像を拡大する

画像を拡大するサンプルです。

サンプルの実行画面

ソースコード

[StretchBlt.frm]

'StretchBlt=>ビットマップを拡大及び縮小する

'<引数>
'hDC:         コピー先のデバイスコンテキスト
'x:           コピー先の左上隅のx座標
'y:           コピー先の左上隅のy座標
'nWidth:      転送される幅
'nHeight:     転送される高さ
'hSrcDC:      コピー元のデバイスコンテキスト
'xSrc:        コピー元の左上隅のx座標
'ySrc:        コピー元の左上隅のy座標
'nSrcWidth:   コピー元の矩形の幅
'nSrcHeight:  コピー元の矩形の高さ
'dwRop:       ラスタ操作 (定数参照)

'@戻り値@
'正常終了0以外

Private Declare Function StretchBlt Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

Const SRCCOPY = &HCC0020     'コピー元をコピー
Const SRCPAINT = &HEE0086    'コピー元とコピー先をOR合成
Const SRCAND = &H8800C6      'コピー元とコピー先をAND合成
Const SRCINVERT = &H660046   'コピー元とコピー先をXOR合成
Const SRCERASE = &H440328    '
Const NOTSRCCOPY = &H330008  'コピー元を反転してコピー
Const NOTSRCERASE = &H1100A6 '
Const MERGECOPY = &HC000CA   '
Const MERGEPAINT = &HBB0226  '
Const PATCOPY = &HF00021     '
Const PATPAINT = &HF80A09    '
Const PATINVERT = &H5A0049   '
Const DSTINVERT = &H550009   'コピー先を反転
Const BLACKNESS = &H42       'すべてを黒にしてコピー
Const WHITENESS = &HFF0062   'すべてを白にしてコピー

Private Sub Command1_Click()

Picture1.ScaleMode = 3
Picture2.ScaleMode = 3

Picture2.Width = 2 * Picture1.Width   '画像を3倍にしたい時は「2」を3に変更する
Picture2.Height = 2 * Picture1.Height '画像を1/2にしたい時は「2」を1/2に変更する

StretchBlt Picture2.hDC, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight _
, Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, SRCCOPY


End Sub

Private Sub Form_Load()

Picture1.Picture = LoadPicture(App.Path & "\ダイアの7.bmp")

End Sub

ソースコード一式のダウンロード

vbapi_stretchblt.zip 1.69 KB (1,733 バイト)

このサンプルの動作環境について

このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。





関連記事



公開日:2015年03月04日
記事NO:00350