Scratch Geschrieben 15. März 2003 Geschrieben 15. März 2003 Hi, ich habe einen Ordner voll *.jpg. Alle mit Auflösung von 1600x1200 und Qualität von 90. Jetzt möchte ich ein Programm schreiben das alle in dem Ordner liegenden Bilder in 640x480 macht und die Qalität auf 60 macht. Die alten Bilder können dabei überschrieben werden. Wie fang ich da am besten an ?? Wie arbeite ich mit *.jpg ?? Schonmal Danke für jede Antwort ! Zitieren
SgtBadAzz Geschrieben 17. März 2003 Geschrieben 17. März 2003 Originally posted by Scratch Hi, ich habe einen Ordner voll *.jpg. Alle mit Auflösung von 1600x1200 und Qualität von 90. Jetzt möchte ich ein Programm schreiben das alle in dem Ordner liegenden Bilder in 640x480 macht und die Qalität auf 60 macht. Die alten Bilder können dabei überschrieben werden. Wie fang ich da am besten an ?? Wie arbeite ich mit *.jpg ?? Schonmal Danke für jede Antwort ! Wie das JPEG Format aussieht weiss ich nicht, aber da musst der mal bei Google nachsehen, da wird es bestimmt tausende von Ergebnissen geben. Generell würde ich mal sagen, dass du das Bild dekomprimierst, dann skalierst und dann wieder komprimierst. Frank Zitieren
Jestertales Geschrieben 17. März 2003 Geschrieben 17. März 2003 Im Borland C++-Builder gibt es eine jpg.h (oder jpeg.h?). Kann natürlich sein, daß es die auch bei anderen Compilern gibt. Zumindest solltest Du Dir diese einmal anschauen... Zitieren
Technician Geschrieben 17. März 2003 Geschrieben 17. März 2003 Originally posted by SgtBadAzz Generell würde ich mal sagen, dass du das Bild dekomprimierst, dann skalierst und dann wieder komprimierst. Bei jpeg handelt es sich um eine sogenannte "Verlustbehaftete Kompression". Dies bedeutet, durch den Kompressionsvorgang gehen Bildinformationen verloren, die auch ein "dekomprimieren" (besser gesagt, Speichern in einem anderen Format) nicht mehr "hervorzaubern" kann. Ein erneutes Speichern einer jpeg-Datei (was ja zwangsläufig hier passieren muss, wenn die Grafik verkleinert werden soll) führt oftmals zu einem äußerst unansehnlichen Ergebnis. Grüße, Technician Zitieren
nic_power Geschrieben 17. März 2003 Geschrieben 17. März 2003 Hallo, gibt es einen bestimmten Grund dafür, daß Du die Anwendung selbst programmieren möchtest? Es gibt verschiedene freie Lösungen (beispielsweise irfanview http://www.irfanview.com/ ), die dies ebenfalls bewerkstelligen. Ansonsten musst Du auf eine entsprechende jpeg-Bibliothek zurückgreifen. Meist ist sowas beim Compiler mit dabei (womit arbeitest Du denn?). Es gibt übrigens auch eine verlustfreie JPEG-Kompression, die aber praktisch nie eingesetzt wird und daher fast unbekannt ist. Nic Zitieren
Scratch Geschrieben 17. März 2003 Autor Geschrieben 17. März 2003 ich benutze VC 7.0 und porgrammiere mit MFC Zitieren
ITSE Geschrieben 24. März 2003 Geschrieben 24. März 2003 hi, ich arbeite mit einer jpg-Library die mein Chef wohl irgendwo im I-Net gefunden hat. Das öffnen und anzeigen von JPGs ist echt einfach, mehr habe ich auch noch nicht damit gemacht. Mir wäre nicht bekannt, dass bei VC++ eine JPG-Library dabei wäre, ich arbeite allerdings mit der 6er Version... Zitieren
Scratch Geschrieben 25. März 2003 Autor Geschrieben 25. März 2003 ich hab das auch mit gdi+ gemacht ... bin mittlerweile soweit, dass ich bilder anzeigen kann und gifs und bmps in jpgs umwandeln kann ... ich will jetzt nur noch die jpgs skalieren können Zitieren
Klotzkopp Geschrieben 25. März 2003 Geschrieben 25. März 2003 Ich glaub ich hab's: Du erstellst ein zweites Bitmap-Objekt, in der gewünschten Größe und Farbtiefe. Dann erstellst du daraus ein Graphics-Objekt und malst die Quellbitmap in dieses Graphics-Objekt: int neuebreite = 500, neuehoehe = 500; Bitmap source( L"Datei.gif" ); Bitmap target( neuebreite, neuehoehe, PixelFormat32bppRGB ); Graphics g( &target ); g.DrawImage( &source, 0, 0, neuebreite, neuehoehe );[/CODE] Dann kannst du target speichern. Zitieren
Scratch Geschrieben 25. März 2003 Autor Geschrieben 25. März 2003 Danke ich werds gleich ma testen !!! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.