Moin moin
Ich habe nochmal an meine Programm weitergearbeitet. Das Programm soll mir einen Text auf ein Bild schreiben, das Bild verkleinern und neu abspeichern.
Soweit klappt das alles.
Die original Bilder sind 3000*2000 bei max 1MB! Beim letzten Testlauf waren 120 Bilder gespeichert und hatten alle zusammen eine Größe von 2,8MB!
Wenn ich das Programm starte läuft das eine Zeitlang ( meist so bis Bild 90 ... 120 ) und dann kommt der Absturz mit dem Fehler: Zu wenig Arbeitsspeicher.
Siehe Bildanhang.
Meine Suche bei Tante google usw brachte mich nicht weiter.
Mein PC hat 16GB RAM
Spoiler anzeigen
Ich habe nochmal an meine Programm weitergearbeitet. Das Programm soll mir einen Text auf ein Bild schreiben, das Bild verkleinern und neu abspeichern.
Soweit klappt das alles.
Die original Bilder sind 3000*2000 bei max 1MB! Beim letzten Testlauf waren 120 Bilder gespeichert und hatten alle zusammen eine Größe von 2,8MB!
Wenn ich das Programm starte läuft das eine Zeitlang ( meist so bis Bild 90 ... 120 ) und dann kommt der Absturz mit dem Fehler: Zu wenig Arbeitsspeicher.
Siehe Bildanhang.
Meine Suche bei Tante google usw brachte mich nicht weiter.
Mein PC hat 16GB RAM
VB.NET-Quellcode
- Public Sub PutTextonImage()
- Directory.CreateDirectory(Sourcepath & "\Fertige")
- Dim Files As String() = IO.Directory.GetFiles(Sourcepath, "*.jpg")
- Targetpath = Sourcepath & "\Fertige\"
- Me.BeginInvoke(Sub() PB_ani.Visible = True)
- For Each File As String In Files
- Dim ImgName As String = System.IO.Path.GetFileName(File)
- Dim newImage As New Bitmap(File)
- maxWidth = maxWidth
- maxHeight = maxHeight
- Dim ratioX = CDbl(maxWidth) / newImage.Width
- Dim ratioY = CDbl(maxHeight) / newImage.Height
- Dim ratio = Math.Min(ratioX, ratioY)
- Dim Width = CInt((newImage.Width * ratio))
- Dim Height = CInt((newImage.Height * ratio))
- Dim smalImage As New Bitmap(Width, Height)
- Using g As Graphics = Graphics.FromImage(smalImage)
- g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
- g.DrawImage(newImage, New Rectangle(0, 0, Width, Height), New Rectangle(0, 0, newImage.Width, newImage.Height), GraphicsUnit.Pixel)
- Dim newText As Graphics = Graphics.FromImage(smalImage)
- Using drawBrush As SolidBrush = New SolidBrush(newColor)
- Using drawFont As Font = New Font("Segoe UI", newSize)
- newsignature()
- Dim drawString As String = signature
- Dim txtlaenge As SizeF = newText.MeasureString(drawString, drawFont)
- Textpos(smalImage.Width, smalImage.Height, CInt(txtlaenge.Width))
- newText.DrawString(drawString, drawFont, drawBrush, txtpos_x, txtpos_y)
- End Using
- End Using
- End Using
- Dim newFile As String
- newFile = Targetpath & ImgName
- Threading.Thread.Sleep(100)
- Me.BeginInvoke(Sub() lstB_newpic.Items.Add(newFile))
- Me.BeginInvoke(Sub() lbl_datei.Text = "Verarbeite Datei: " & newFile)
- smalImage.Save(newFile, System.Drawing.Imaging.ImageFormat.Jpeg)
- Next
- Me.BeginInvoke(Sub() PB_ani.Visible = False)
- End Sub
Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen.