Image von Clipboard in Datenbank

  • WPF

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

    Image von Clipboard in Datenbank

    Hallo Leute,

    ich will in meinem Programm die Möglichkeit haben, Bilder (Images) aus der Zwischenablage direkt in die DB zu speichern. Das bedeutet: Der Benutzer drück Strg+V mit einem Bild in der Zwischenablage und dieses wird in die DB gespeichert.
    Jedoch klappt es noch nicht so ganz wie ich es mir vorstelle mein Code ist folgender:

    VB.NET-Quellcode

    1. Dim oImgObj As System.Drawing.Image = oDataObj.GetData(DataFormats.Bitmap, True)
    2. Dim tmpStream As New MemoryStream()
    3. oImgObj.Save(tmpStream, ImageFormat.Png)
    4. ' change to other format
    5. tmpStream.Seek(0, SeekOrigin.Begin)
    6. Dim imgData(tmpStream.Length) As Byte
    7. tmpStream.Read(imgData, 0, tmpStream.Length)
    8. Dim res As String = imgData.Length / 1024
    9. Dim Filename As String = InputBox("Geben Sie einen Dateinamen ein!")
    10. Dim query As String = "INSERT INTO DATA (DATEN, BEZEICHNUNG, ID_KONTAKT, ID_USER, ID_DATATYPE, FILESIZE) VALUES (@COVER, '" & Filename & "'," & IDTHEMA & "," & IDUSERANGEMELDET & "," & 1 & ", " & res & ")"
    11. cmd = New FbCommand(query, conn)
    12. cmd.Parameters.AddWithValue("@COVER", imgData)


    Direkt am Anfang bei

    VB.NET-Quellcode

    1. Dim oImgObj As System.Drawing.Image = oDataObj.GetData(DataFormats.Bitmap, True)


    Meckert das Programm mit folgender Fehlermeldung:
    Das Obejekt des typs "System.Windows.Interop.InteropBitmap" kann nicht in Typ "System.Drawing.Image" umgewandelt werden

    Gibts noch eine andere Methode?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Jojo0405“ ()

    Bitte

    VB.NET-Quellcode

    1. Option Strict On


    Du versuchst ein Bitmap als Image zu "deklarieren".
    Wandel das Bitmap in den richtigen Typ und es wird funktionieren.

    Beispiel:

    VB.NET-Quellcode

    1. My.Computer.Clipboard.GetImage()

    Ruft das ganze direkt als System.Drawing.Image ab.

    Komplett:

    VB.NET-Quellcode

    1. Dim oImgObj As System.Drawing.Image = My.Computer.Clipboard.GetImage()
    2. Dim tmpStream As New MemoryStream()
    3. oImgObj.Save(tmpStream, ImageFormat.Png)
    4. ' change to other format
    5. tmpStream.Seek(0, SeekOrigin.Begin)
    6. Dim imgData(tmpStream.Length) As Byte
    7. tmpStream.Read(imgData, 0, tmpStream.Length)
    8. Dim res As String = imgData.Length / 1024
    9. Dim Filename As String = InputBox("Geben Sie einen Dateinamen ein!")
    10. Dim query As String = "INSERT INTO DATA (DATEN, BEZEICHNUNG, ID_KONTAKT, ID_USER, ID_DATATYPE, FILESIZE) VALUES (@COVER, '" & Filename & "'," & IDTHEMA & "," & IDUSERANGEMELDET & "," & 1 & ", " & res & ")"
    11. cmd = New FbCommand(query, conn)
    12. cmd.Parameters.AddWithValue("@COVER", imgData)

    Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von „OMA“ ()