JPG Bild laden, auf feste Breite ändern und in Unterordner speichern

  • VB.NET

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

    JPG Bild laden, auf feste Breite ändern und in Unterordner speichern

    Hallo liebes Forum,

    wieder mal stehe ich vor einem Problem und komme nach stundenlanger Googlesuche einfach nicht weiter. Und zwar ist es so, dass ich ein Programm schreiben möchte, was alle jpg Dateien aus einem Ordner lädt, auf eine feste Breite von 1024px anpasst (wichtig: Proportion muss eingehalten werden) und dann im Unterordner als JPG klein und Komprimiert abgespeichert werden soll...

    Ich weiß, dass ihr hier ungern fertige Codes postet, aber ich komme einfach nicht weiter...

    Es ist nicht das Problem hinterher daraus eine automatische Verarbeitung zu machen, nur ich kriege es mit einem Bild schon nicht hin.

    Versucht habe ich es unter anderem auf diese Art und Weise, aber da ist die Quelldatei 63kb groß und die ausgegebene Datei 2,8mb und total verzogen!

    VB.NET-Quellcode

    1. 'Picturebox1 Anlegen!
    2. Dim Bitmaptemp as Bitmap
    3. Dim bitmap as Bitmap
    4. Bitmaptemp = new Bitmap("pic1.jpg")
    5. Bitmap = new Bitmap(Bitmaptemp,400,300)
    6. Picturebox1.Image = Bitmap
    7. Picturebox1.Image.save("pfad")


    Würde mich sehr über Hilfe freuen...

    MfG Friloo

    EDIT:

    Habe es nun gelöst hiermit: HIER

    Das Problem, was ich jetzt allerdings habe ist, dass die verkleinerten Dateien immernoch zu viel Speicher ziehen! Wie kann ich sie komprimieren?

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

    du speicherst sicher mit deineBitmap.save(PFAD) oder? Standardmäßig wird das bmp-Format gewählt - braucht also sehr viel Speicherplatz. Durch eine Überladung der .save-Methode kannst du ein anderes unterstütztes Format auswählen, z.B.: deineBitmap.save(Pfad,imaging.imageformat.jpeg)
    lg
    Dafür nimmst du die Graphics-Klasse. Du kannst mit einer Methode ein Graphics-Objekt aus einer Bitmap erstellen. Auf dieser werden dann die Zeichenanweisungen angewandt. Die Methode DrawString ist dafür da, um einen Text zu zeichnen. Guck dir die Klasse einfach auf der MSDN oder im Objektbrowser an. Da findest du die genauen Überladungen. Ich bin gerade am Handy also kann ich nur schwer Informationen für dich raussuchen