tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1782
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Terminator2 Terminator2 ist offline Mitglied Brokat
    Registriert seit
    Aug 2005
    Beiträge
    256
    Hallo zusammen,

    Ich habe aus einem SDK folgende Funktion:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
        Private Sub Draw()
            Dim hDCHelp As Integer
            Dim hDC As IntPtr
            Dim DC As Graphics
            Dim DrawPen As New Pen(Color.White, 3)
     
            Try
                hDCHelp = m_GDIOverlay.GetDC()
                hDC = New IntPtr(hDCHelp)
                DC = Graphics.FromHdc(hDC)
     
                DC.DrawLine(DrawPen, m_StartPoint, m_EndPoint)
     
                Dim Test As Bitmap = New Bitmap(640, 480)
                Test = Bitmap.FromHbitmap(hDC)
                'Test.Save("C:\Test.bmp")
     
                m_GDIOverlay.ReleaseDC(hDCHelp)
            Catch ex As Exception
                MsgBox("Fehler: " & ex.Message)
            End Try

    Ich habe leider keine andere Möglichkeit auf das Bild zuzugreifen, als dies über das Graphics Objekt zu tun. Um nun was mit dem Bild anfangen zu können, will ich dieses wieder in ein Bitmap umwandeln. Testweise speichere ich das Bild auf der Festplatte, um ein Ergebnis zu sehen.
    Das Problem ist jetzt, dass die Fehlermeldung "Allgemeiner Fehler in der GDI+" ausgegeben wird.
    Weiß jemand, wie ich aus dem HDC ein Bitmap erzeugen kann?


    Danke im vorraus!

    Gruß David
     

  2. #2
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Code vbnet:
    1
    
    Dim bmp As New Bitmap(640, 480, DC)
    Edit: ah sorry ich hatte die vorletzte Zeile uberlesen. Probier mal die Basis-Fehlermeldung mit GetBaseException auszulesen, damit wir schlauer werden, was der eigentliche Fehler ist:
    Code vbnet:
    1
    2
    3
    4
    5
    6
    7
    
    Try
        Dim Test As Bitmap = New Bitmap(640, 480)
        Test = Bitmap.FromHbitmap(hDC)
        Test.Save("C:\Test.bmp")
    Catch ex As Exception
        MessageBox.Show(ex.GetBaseException.ToString)
    End Try
    Geändert von Shakie (03.09.09 um 16:55 Uhr)
     
    hihi = -h²

  3. #3
    Terminator2 Terminator2 ist offline Mitglied Brokat
    Registriert seit
    Aug 2005
    Beiträge
    256
    Habe zuerst einmal in das das DC in die New Bitmap Funktion eingefügt. Dann tritt schon kein Fehler mehr auf. Leider ist das gespeicherte Bild einfach nur ein leeres Bitmap, also recht nutzlos. Vielleicht lässt sich da ja noch was dran ändern
    Wenn ich die Fehlermeldung wie geschrieben auslese, kommt folgendes heraus (Also bei der von mir geposteten Draw-Funktion):

    Zeile 810 hat übrigens den Befehl hier: Test = Bitmap.FromHbitmap(hDC)
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Bitmap aus Graphics Objekt erzeugen (HDC)-fehlermeldung.jpg  
     

Ähnliche Themen

  1. Bitmap erzeugen mit C++
    Von the_undertaker im Forum C/C++
    Antworten: 26
    Letzter Beitrag: 12.04.07, 19:47
  2. Graphics Objekt - schneller zeichnen?
    Von MichiStroi im Forum .NET Grafik und Sound
    Antworten: 1
    Letzter Beitrag: 31.10.06, 08:51
  3. Graphics in Bitmap und Metafile konvertieren
    Von MichiStroi im Forum .NET Grafik und Sound
    Antworten: 2
    Letzter Beitrag: 15.10.05, 21:18
  4. Bitmap mit C++ erzeugen
    Von sub im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 04.01.05, 08:53
  5. Graphics objekt sauber in Variable kopieren
    Von Schnubbel im Forum Java
    Antworten: 3
    Letzter Beitrag: 08.06.04, 00:45