36.ビットマップを拡大及び縮小する



< 使用用途 >
ビットマップを拡大及び縮小する

今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード ・・・ ビットマップを拡大するサンプルです。


< 説明 >
API関数のStretchBlt を使用します。
StretchBlt=>ビットマップを拡大及び縮小する
  <引数>
         hDC: コピー先のデバイスコンテキスト
           x: コピー先の左上隅のx座標
           y: コピー先の左上隅のy座標
        nWidth: 転送される幅
       nHeight:転送される高さ
       hSrcDC: コピー元のデバイスコンテキスト
         xSrc:コピー元の左上隅のx座標
         ySrc:コピー元の左上隅のy座標
      nSrcWidth:コピー元の矩形の幅
     nSrcHeight:コピー元の矩形の高さ
        dwRop:ラスタ操作(定数参照)
  @戻り値@  
      正常終了0以外


< SAMPLE >
'Picture1の画像を2倍にしてPicture2にコピーする
'標準モジュール
Public Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (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

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

'ここからはフォームの処理
Private Sub Command1_Click()
 '初期設定
  Picture1.Picture = LoadPicture("C:\Windows\バンブー.bmp")
  Picture1.ScaleMode = 3
  Picture2.ScaleMode = 3
 
  Picture2.Width = 2* Picture1.Width
  Picture2.Height = 2* Picture1.Height
 
  StretchBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight , Picture1.hdc, 0, 0, Picture1.ScaleWidth,              Picture1.ScaleHeight, SRCCOPY
End Sub





API 技術関連のページへ戻る

ホーム PV ランキング