JPEG's verkleinern
-
Hallo Allerseits,
erstmal ein schönes neues 2003!!
Ich möchte gerne JPEG's verkleinern um sie dann in einer HTML-Übersicht darzustellen.
Leider gibt's ja unter MFC ziemlich wenig zum Thema JPEG-Bearbeitung. Habt Ihr trotzdem eine Idee welche Funktionen oder Libraries man zum verkleinern von JPEG's nutzen kann?Thx schonmal im voraus!
Theo
-
Vielleicht geht das mit dem IPicture-Interface. Guckmal in eine aktuelle MSDN. Wichtige Funktionen dabei wären OleLoadPicture und OleLoadPicturePath... Das geladene Bild kann man AFAIK dann verändern und speichern. Musst wahrscheinlich ein wenig rumtricksen.
-
Hi MaSTaH,
Ok das hilft schon mal.
Allerdings weiss ich nicht so recht, wie ich das JPEG in ein File schreiben kann.IPicture::Render wird nur ein Handle auf ein Devicekontext übergeben und IPicture::SaveAsFile schreibt in einen Stream...
Gibt's ne Idee, wie's dann in einer Datei landen könnte? Bin ja noch Newbie und das Handling von Streams ist mir noch nicht recht geläufig
Gruss Theo
-
Ist auch kacke mit den Streams...
Der Stream hat eine Funktion namens Read. Da liest du dir die Daten aus den Streams und kannst sie dann mit Write (von CFile nicht von IStream) in ein CFile schreiben. Geht bestimmt auch einfacher aber das fällt mir im Moment nur ein...
-
PS: Hast du es denn gebacken bekommen die JPEG's im Speicher zu verkleinern. Das IPicture besitzt eine Funktion namens get_Handle oder so ähnlich. Das kannst du auf HBITMAP casten und verwenden.
Ich hab da mal ein simples Sample gefunden, aber das geht nicht so in die Tiefe wie du das gerne hättest...
http://www.codeguru.com/bitmap/CPictureShow.zipHabe mir auf der Arbeit so ne ähnliche Klasse geschrieben aber die darf ich leider nicht posten, sonst gibts Ärger...
Sehe grade, dass die Klasse ziemlich viel überflüssigen Code hat... Naja, die grundlegenden Sachen wirst du erkennen...
[ Dieser Beitrag wurde am 02.01.2003 um 16:59 Uhr von MaSTaH editiert. ]
-
Hi, jetzt habe ich bei Codeguru genau das gefunden was ich suche. Ist ne schön simple Klasse:
BYTE * RGBbuffer = ReadJPEGFile(filename,&width,&height); SaveJPG(RGBbuf, width, height...);
Jetzt kommt aber die nächste Frage: Wie binde ich die Lib's ein ohne das dieses Gemecker kommt:Jpegfile.obj : error LNK2001: Nichtaufgeloestes externes Symbol _jpeg_CreateCompress
Jpegfile.obj : error LNK2001: Nichtaufgeloestes externes Symbol _jpeg_destroy_compress
Debug/BUBU.exe : fatal error LNK1120: 16 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.Sind noch eine Menge mehr von der gleichen Sorte
Findet er irgendwelche Dateien nicht?
Schonmal Thx für die Tips!
Theo
-
Oh, hab's selbst gefunden:
Hatte die LIB-Datei in Projekt/Einstellungen/Linker NICHT bekanntgegeben. Nun läuft der Linker sauber durch.Ok, trotzdem danke nochmal
Theo