AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte JPEG-Kompressor
Thema durchsuchen
Ansicht
Themen-Optionen

JPEG-Kompressor

Ein Thema von DGL-luke · begonnen am 29. Mai 2005 · letzter Beitrag vom 27. Apr 2006
 
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

JPEG-Kompressor

  Alt 29. Mai 2005, 18:58
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
Angehängte Dateien
Dateityp: rar kompressor_v1_4_exe_101.rar (305,0 KB, 49x aufgerufen)
Dateityp: rar kompressor_v1_4_source_185.rar (5,6 KB, 72x aufgerufen)
Dateityp: rar manifest_112.rar (433 Bytes, 38x aufgerufen)
Dateityp: rar lpng_177.rar (82,1 KB, 48x aufgerufen)
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz