Grafik kopieren (Pfad herausfinden)

  • VB.NET

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

    Ich hab mal was änliches gebraucht..

    VB.NET-Quellcode

    1. Dim files As Collections.Specialized.StringCollection = Clipboard.GetFileDropList()
    2. Dim bild As Image = Nothing
    3. For i As Integer = 0 To files.Count - 1
    4. Dim fi As New IO.FileInfo(files(i))
    5. If fi.Extension.ToLower() = ".jpg" Or fi.Extension.ToLower() = ".png" Or fi.Extension.ToLower() = ".gif" Or fi.Extension.ToLower() = ".bmp" Then
    6. bild = Image.FromFile(files(i))
    7. MsgBox(files(i))
    8. Exit For
    9. End If
    10. Next
    11. If bild IsNot Nothing Then
    12. PictureBox1.Image = bild
    13. End If


    weiß nicht ob´s noch klappt.

    lg
    nsjdvv
    Wie von Samus Aran schon erwähnt: wenn es ein Bild ist, also nur die "Pixeldaten" kann (muss) man das Bild vorher als Datei abspeichern und dann hochladen.
    Die Bitmap Klasse bietet die .Save() Methode. Ihr übergibt man den Dateipfad und das Bildformat und schon wird eine Datei auf dem Computer erstellt.
    Clipboard.ContainsData(DataFormats.Dib/Bitmap) überprüft, ob sich in der Zwischenablage diese "Pixeldaten" befinden
    Mit DirectCast(Clipboard.GetData(...), Bitmap).Save(...) das Ganze abspeichern und anschließend hochladen (nachher löschen nicht vergessen!).

    Wenn sich das Bild als Datei in der Zwischenablage befindet lässt sich das mit Clipboard.ContainsFileDropList überprüfen und mit Clipboard.GetFileDropList abfragen (Die Methode mit GetData(DataFormats.???) kenne ich noch nicht).
    Da GetFileDropList eine Liste von Dateien zurückgibt packt man das am einfachsten in eine For Each Schleife (For Each i As String In Clipboard.Get...)
    Dann steht bei jedem Durchgang für i (kann man auch anders nennen, ich stehe halt auf diese Methode) ein Pfad.
    Mit IO.Path.GetExtension(i) die Erweiterung der Datei überprüfen und nur z.B. .bmp, .png und .jpg zulassen.
    Wie von nsjdvv gezeigt: mit .ToLower werden alle Buchstaben der betreffenden Zeichenfolge zu kleinbuchstaben konvertiert und man spart sich 2^3 - 1 unterschiedliche Möglichkeiten.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Wenn sich die Pixelinformation des Bildes in der Zwischenablage befindet, kannst Du dort den Pfad nicht ermitteln, da er nicht dabei steht. Da Du aber das Bild mit einem Programm in die Zwischenablage kopiert hast, müsstest Du das Programm befragen. Noch einfacher: Schreibe selbst das Programm, das das Bild in die Zwischenablage kopiert, da hast Du alle Informationen aus erster Hand:

    VB.NET-Quellcode

    1. Dim bmp As New Bitmap(DEIN_PFAD)
    2. Clipboard.Clear()
    3. Clipboard.SetImage(bmp)
    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!