Screenshot Problem "Unbekannter JPEG Marker"

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Screenshot Problem "Unbekannter JPEG Marker"

    Hi,

    ich habe ein kleines VB Programm zum Erstellen von Screenshots. Mit einem Click kann ich ein vorher festgelegtes Rechteck "fotografieren" und in eine .jpg Datei einstellen.

    Hier ist der wesentliche Code:

    VB.NET-Quellcode

    1. 'Capture picture to file
    2. capture = New Bitmap(area.Width, area.Height, PixelFormat.Format32bppArgb)
    3. graph = Graphics.FromImage(capture)
    4. graph.CopyFromScreen(area.X, area.Y, 0, 0, area.Size, CopyPixelOperation.SourceCopy)
    5. capture.Save(ScreenShotObject) 'Save picture


    Das klappt auch wunderbar und der Windows Picture Viewer zeigt den Screenshot problemlos an.

    Allerdings kommen einige Anwedungen mit diesem .jpg File NICHT klar. Z.B. wenn ich den File mit "Photoshop" öffne erhalte ich die Fehlermeldung:

    Konnte das Dokument nicht öffnen, weil ein unbekannter oder ungültiger JPEG Marker gefunden wurde.

    Sagt das jemanden etwas ?

    Wenn ich das .jpg Bildchen mit einem "Shrink" Programm auf 100 % (also gleiche Größe) konvertiere, dann ist die daraus resultierende Datei problemlos zu verarbeiten! Allerdings ist sie jetzt doppelt so groß und weniger scharf. Das ist natürlich nicht in meinem Sinne.

    Ich hoffe, ich habt ein paar schlaue Ideen.

    LG
    Peter
    Jau ... ScreenShotObject ist der komplette Pfad mit Filename und Extension.

    Und die Sache mit ImageFormat.Jpeg hat das Problem GELÖST !

    And I think to myself ... what a woooooonderful woooorld ... :D

    Danke Eddy, du verdienst eigentlich mehr als nur einen Daumen nach oben !

    LG
    Peter

    Peter329 schrieb:

    Und die Sache mit ImageFormat.Jpeg hat das Problem GELÖST !
    Ich öffne Bilder grundsätzlich mit dem Irfan-View.
    Wenn da der Dateiinhalt des Bildes nicht zur Extension passt, merkt der das und bietet die Umbenennung an.
    In diesem Falle würdest Du indirekt auf Deinen Fehler aufmerksam gemacht werden. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!