掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画像をBitBltで分解・保存するコードを作ったのですが… (ID:92199)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは。初投稿です。よろしくおねがいいたします 当方VB6を使用しています 以下のようなコードを作成いたしました。 Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC 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 dwRop As Long) As Long Dim f As Integer Private Sub Command1_Click() Dim i As Integer, n As Integer Dim i2 As Integer, n2 As Integer f = 0 If Image1.Width Mod 32 = 0 Then n = Image1.Width \ 32 Else n = Image1.Width \ 32 + 1 End If If Image1.Height Mod 32 = 0 Then n2 = Image1.Height \ 32 Else n2 = Image1.Height \ 32 + 1 End If Debug.Print Dir(App.Path & "\put"), n, n2 If Dir(App.Path & "\put") = Null Then MkDir App.Path & "\put" For i = 0 To n For i2 = 0 To n2 DoEvents BitBlt Picture2.hDC, (i * 32), (i2 * 32), (i * 32 + 32), (i2 * 32 + 32), Picture1.hDC, 0, 0, vbSrcCopy f = f + 1 Picture2.Refresh 'Exit Sub SavePicture Picture2.Image, App.Path & "\put\" & Trim(Str(f)) & ".bmp" lbf.Caption = f Next i2 Next i End Sub Private Sub Command2_Click() CommonDialog1.ShowOpen Set Image1.Picture = LoadPicture(CommonDialog1.FileName) Picture1.Picture = Image1.Picture End Sub ですが、 画像の一番左上の32*32だけが 保存されてしまいます。 Picture2 は width = 32 Height = 32 ボーダー無し です。 これは、RPG等のマップチップを一つ一つに分解するプログラムになります。 よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.