Ja, ich will jetzt auch mal n bisschen
OS rausbringen.
Den Kompressor hab ich gewählt, weil ich den schon mal geproggt hatte und mir jetzt nur ne vernünftige
GUI überlegen musste und das einigermassen
OOP-mäßig "zu File" bringen musste.
Screenshot
Was macht das Programm?
man kann ein vom Dateiformat her fast beliebiges Bild laden, dieses mit Vorschaufunktion als JPG komprimieren und dann als JPG abspeichern.
Wofür braucht man das Programm?
Wenn man so wie ich geringe Bandbreite hat, aber öfters mal n Bild ins World Wide Web bringen will, nimmt einem der ziemlich viel Arbeit ab. was bei einem Grafikprogramm so aussieht:
Importieren->Speichern unter->Komprimierung einstellen(oft ohne Vorschau!)->speichern
sieht bei mir so aus:
laden->ein bisschen am Regler schieben->speichern.
Ein typisches One Trick Tool also.
Wie sieht der Code aus?
- Kompos: JPEG(bei Delphi dabei), G32(
www.g32.org), GraphicEx(
www.lischke-online.de), PngUnit (Jack Goman)
- So sauber wie möglich, so dreckig wie nötig(nur die auflistung der nicht optimal gelösten probleme):
- TTrackbar-Ableitung um WndProc zu überschreiben, damit ich auf LBUTTONUP und KEYUP reagieren kann - unsauber, aber effizient. code direkt in die wndproc geschrieben, nicht extra onmouseup implementiert -> wiederverwendungswert = 0
- Konvertierungsakrobatik: TMemoryStream, TImage32, TJPEGImage, TBitMap32, TImage......
- TMyTrackbar nicht direkt auf der Form - muss im FormCreate initialisiert werden, und ist eine globale Variable
- Kommentare nur in der Deklaration
ich denke aber nicht, dass man mehr wirklich braucht.
das wars erstmal - wer zu diesen oder zu weiteren gefundenen Fehlern/unsauberkeiten verbesserungsvorschläge hat, darf sie natürlich gerne posten!
Wer kein RAR hat:
Unrar for Windows - direkt von der winrar-HP.
Changelog
Version 1.4
- PNG-Unterstützung
Version 1.3
- Zusätzliche Buttons
- XP-Manifest hinzugefügt
- Lizenztext
Version 1.2.1
- Fehlende (nicht einkompilierte

) GIF-Unterstützung hinzugefügt
- About-Box hinzugefügt
- Code-Formatierung angefangen
Version 1.2
- "Konstantentabelle" mit Pointern - die direkte ausrichtung funktioniert jetzt per tag und pointer-array
- Source mehr kommentiert
- Vergrößerungsfaktor und Offset bleibt jetzt, wenn es der user nicht ändert.
Version 1.1
- Dateigrößenanzeige implementiert
- Fehler bei der Komprimierung entfernt ( Stream wurde nicht neu angelegt, sondern nur überschrieben. alte daten blieben evtl. am ende übrig)
Version 1.0
- erste veröffentlichte version