Datum auf Bilder schreiben

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Dendem.

    Datum auf Bilder schreiben

    Hallo,
    ich wollte ein kleines Programm schreiben, welches das Datum nachträglich auf Bilder schreibt,
    da wir das in der Kamera ausgestellt hatten.
    nun habe ich folgenden Code:

    VB.NET-Quellcode

    1. Imports System.Drawing.Imaging
    2. Imports System.Drawing
    3. Public Class Form1
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. FolderBrowserDialog1.ShowDialog()
    6. End Sub
    7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. Timer1.Interval = 500
    9. Timer1.Start()
    10. End Sub
    11. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    12. TextBox1.Text = FolderBrowserDialog1.SelectedPath
    13. End Sub
    14. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    15. For Each File In FileIO.FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath)
    16. ListBox1.Items.Add(FileIO.FileSystem.GetName(File) + " - " + FileIO.FileSystem.GetFileInfo(File).CreationTime)
    17. Next
    18. End Sub
    19. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    20. ProgressBar1.Maximum = ListBox1.Items.Count
    21. ProgressBar1.Minimum = 0
    22. Dim neu As String
    23. Dim bildF As ImageFormat
    24. Dim font1 = New Font("Arial", 8)
    25. Dim pos As New System.Drawing.Point(0, 0)
    26. bildF = ImageFormat.Bmp
    27. neu = (FolderBrowserDialog1.SelectedPath + "\Bilder mit Datum\")
    28. For Each file In FileIO.FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath)
    29. TextOnImage(FolderBrowserDialog1.SelectedPath + "\" + FileIO.FileSystem.GetName(file), neu, "TEST", bildF, font1, Color.Red, pos)
    30. ProgressBar1.Value = ProgressBar1.Value + 1
    31. Next
    32. End Sub
    33. Private Sub TextOnImage(ByVal OldImage As String, ByVal NewImage As String, ByVal Text As String, ByVal Format As ImageFormat, ByVal Font As
    34. Font, ByVal Color As Color, ByVal Position As Point)
    35. Dim TmpSize As System.Drawing.Size
    36. Dim Image As Image = System.Drawing.Image.FromFile(OldImage)
    37. Dim Brush As New SolidBrush(Color)
    38. 'Größe auslesen
    39. TmpSize.Height = Image.Height
    40. TmpSize.Width = Image.Width
    41. 'Neue Bitmap erstellen
    42. Dim NewBitmap As New System.Drawing.Bitmap(Image, TmpSize)
    43. 'Neue Grafik erstellen anhand der Bitmap
    44. Dim Graphic As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(NewBitmap)
    45. 'String auf Bild zeichnen
    46. Graphic.DrawString(Text, Font, Brush, Position)
    47. 'Neues Bild speichern
    48. NewBitmap.Save(NewImage, Format)
    49. 'Ressourcen freigeben
    50. Graphic.Dispose()
    51. NewBitmap.Dispose()
    52. End Sub
    53. End Class


    Soweit so gut, nur bei

    VB.NET-Quellcode

    1. NewBitmap.Save(NewImage, Format)
    kommt folgender fehler :

    Quellcode

    1. Allgemeiner Fehler in GDI+

    wäre nett, wenn mit einer helfen könnte :)

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

    Ganz einfach:

    VB.NET-Quellcode

    1. Dim bmp As New Bitmap(DEIN_BILD)
    2. Dim g As Graphics = Graphics.FromImage(bmp)
    3. g.DrawString(DEIN_TEXT, New Font("Arial", 20), Brushes.Black, New Point(10, 10))
    4. Me.BackgroundImage = bmp
    5. ' oder
    6. bmp.Save(DEIN_PFAD, System.Drawing.Imaging.ImageFormat.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!
    Bist Du auch so ein C&P-Künstler, der den abgegriffenen Code nicht versteht
    oder kannst Du nur nicht mit der Entwicklungsumgebung umgehen?
    PFAD ist ein String, der den vollständigen Pfad einer Bild-Datei in einem von .NET unterstützten Format.
    Bei TIFF kann es Schwierigkeiten geben.
    Bilder
    • Bitmap.jpg

      25,57 kB, 728×130, 112 mal angesehen
    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!
    ich hab natürlich NICHT "PFAD" in der Klammer stehen, sondern den Pfad als String ...
    gerade deswegen verstehe ich den Fehler nicht, der entsteht auch erst während der Laufzeit und
    ist nicht von Anfang an da

    //EDIT:

    naja den Fehler hab ich beseitigt :/ vergessen sting zu schließen .. naja egal jz hab ich den gleichen Fehler wie vorhin, bei

    Quellcode

    1. bmp.Save(neu, System.Drawing.Imaging.ImageFormat.Bmp)


    Fehler:

    Quellcode

    1. Allgemeiner Fehler in GDI+

    //EDIT2:

    Wie ich leichtsinnsfehler hasse .. naja nächstes mal vergess ich net, dem Ausgangsbild nen Namen zu verpassen ...
    Trotzdem Danke für Deine Hilfe :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Dendem“ ()