Announcement

Collapse
No announcement yet.

Snapshot erstellen und als Bitmap speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Snapshot erstellen und als Bitmap speichern

    Hallo,
    ich programmiere mit VP und API-Funktionen. Über die API "BitBlt" habe ich es geschafft, ein Snapshot eines Fensterbereiches zu erstellen. Wie kann ich nun mit API-Funktionen aus diesem Snapshot ein Bitmap machen und dieses in eine Datei speichern. Hier mal mein bisheriger Code:

    <pre>
    Dim hWndp, hDCp, Result As Long
    Dim Pt As POINTAPI
    Dim bmpStr As String
    Dim saveDC As Long
    Dim saveBmp As Long
    Static bmpSave As String

    Call GetCursorPos(Pt)
    Label1.Caption = "Abs. MousePos x: " & Pt.x & " ; y:" & Pt.y

    hWndp = WindowFromPoint(Pt.x, Pt.y)
    Label3.Caption = "Windows Handle: " & hWndp

    hDCp = GetDC(hWndp)
    Label4.Caption = "DeiveContext: " & hDCp

    saveDC = CreateCompatibleDC(hDCp)

    Call ScreenToClient(hWndp, Pt)
    Label2.Caption = "Rel. MousePos x: " & Pt.x & "; y:" & Pt.y

    Call BitBlt(saveDC, 0, 0, 40, 12, hDCp, 6, 168, vbSrcCopy)
    'Das so erzeugte Bitmap ist leer!!!! Wie kann ich aus den
    'GeräteDevice ein Bitmap ziehen?
    saveBmp = CreateCompatibleBitmap(saveDC, 40, 12)

    'In der PictureBox wird der Snapshot angezeigt. Aber leider kann
    'ich diesen nicht mehr weiterverarbeiten
    Call BitBlt(Picture1.hDC, 0, 0, 40, 12, hDCp, 6, 168, vbSrcCopy)
    </pre>

    Danke für euere Hilfe

  • #2
    versuch es folgedermassen:
    <pre>
    wDC = GetDC(winHWND)
    mDC = CreateCompatibleDC(0)
    mBmp = CreateCompatibleBitmap(wDC, imgwidth,imgheight)
    <b>SelectObject(mDC,mBmp)</b>
    BitBlt(mDC,0,0,anywidth,anyheight,wDC,0,0,SRCCOPY )
    ...
    Bitmap speichern
    ....
    ReleaseDC(winHWND,wDC)
    DeleteObject(mBmp)

    </pre&gt

    Comment

    Working...
    X