![]() |
BMP2JPEG - Konvertieren mit Progressbar ?
Hi !
Ich habe vor ein kleines Tool zu schreiben, welches BMPs nach JPEGs und umgkehrt konvertieren kann. Nun möchte ich für die einzelnen Pics eine ProgressBar mit laufen lassen. Und es wäre natürlich auch schön, wenn es eine 2. ProgressBar gäbe, welche den Status der Konvertierung von allen Bildern angibt, sprich wielange es dauern wird, bis alle ausgewählten Pics konvertiert wurden. Nur leider habe ich keine Ahnung von der Verwendung von ProgressBars. Habt ihr vielleicht Tutorials dazu oder ein kleiner Beispiel Code ? Vielen Dank ! Gruß Assun |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Da gibt es eigentlich nicht viel ...
Min, Max, Step(It) und Position ist schon fast alles ;) |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Diese eigenschaften kenne ich ja !
Ich weis nur nicht wie man sie einsetzt ;-) |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Min ist angenommen 1.
Max setzt du auf die Anzahl der zu konvertierenden Bilder. Und jedesmal, wennn ein Bild fertig umgewandelt ist, rufst du ProgressBar1.StepIt auf ;) //edit: Ergänzende Informationen siehe bei jfheins ;) |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Es gibt auch eine Delphi-Hilfe ;)
:arrow: Min: Minimalwert (z.B. 100) :arrow: Max: Maximalwert (z.B. 0) :arrow: Position: Position der progressbar, muss zwischen min und max liegen (z.B. 50) @Ulti: dann müsste er Step auf 1 setzen :!: |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Min: Der Mindestwert der Progressbar
Max: Der Maximalwert Position: Welchen Wert hat die Progressbar Step: Da bin ich mir nicht so sicher. Ich glaub Step gibt an, wieviele Punkte man in der Position haben muss, damit sich ein "Feld" auf der Progressbar füllt (Max/Step würde dann imho die Anzahl der "Felder" der Progressbar ergeben). Das war's auch schon ;) //edit: Wo ist das rote Kästchen hin? :gruebel: |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Step ist die Anzahl an Einheiten, um die StepIt die Position erhöht ;)
Du kannst also statt Progressbar.position := Progressbar.position + 1; Einfach step := 1 setzte, und dann Progressbar.stepit; ;) Beispielcode für eine Progressbar:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; begin for i := 0 to 350 do begin ProgressBar1.Position := round (abs (sin (i/100) * 100)); // rumrechnerei, damit es cooler aussieht ... ProgressBar1.Repaint; Sleep(10); end; end; |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
ich glaube, ich versteht Assun nicht ganz
er weiß über den übergang mit der progressbar bescheit, er weiß nur nicht, welche berechnungen er anstellen muss, um herauszufinden, wann die bilder fertig sind ;) zum thema: vllt so: du ermittelst die anzahl der pixel, setzt das max auf die anzahl der pixel und zählst dann halt pro pixel eins dazu |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
hi,
willst du auch wissen, wie du die progressbar in dein code einbauen kannst? wenn ja, poste mal dein code, den du nimmst um die bilder zu konvertieren. gruss urbanbruhin |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Ich vermute mal mit
TJpegImage.Assign(TBitmap) Deswegen wird das vermutlich n kleines Problem geben :? |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Ja, das könnte schwer werden :stupid: .Assun könnte ja JPEG nachprogrammieren, einfach mal dizzy fragen und die Idee schnell wieder verwerfen :mrgreen: .
Aber dem ersten Posting nach geht es Assun schon um die Progressbar allgemein. |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
ok so konvertiere ich die Bilder :
Delphi-Quellcode:
procedure JPEGtoBMP(const FileName: TFileName);
var jpeg: TJPEGImage; bmp: TBitmap; begin jpeg := TJPEGImage.Create; try jpeg.CompressionQuality := 100; {Default Value} jpeg.LoadFromFile(FileName); bmp := TBitmap.Create; try bmp.Assign(jpeg); bmp.SaveTofile(ChangeFileExt(FileName, '.bmp')); finally bmp.Free end; finally jpeg.Free end; end; |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
ui, das sieht wirklich nicht gut aus, ich glaube nicht das das geht.
|
Re: BMP2JPEG - Konvertieren mit Progressbar ?
irgendwie muss es doch gehen :-(
|
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Mit der Konvertierung nicht.
Da wirds schon einen Algo brauchen, in den du das einfplanzen kannst. air |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Du kannst es ja wenigstens dritteln: Laden, Kopieren, Speichern.
Aber sieht man da bei den einzelnen Bildern überhaupt etwas :gruebel: ? |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
nein ! die bilder sollen lediglich umgewandelt werden
|
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Du könntest auch Versuchsreihen aufstellen, um die Zeit mit bestimmten Einstellungen zu berechnen, und dann die Progressbar in einem Timer weiterzählen (stepit), ab und zu mit Position korrigieren
;) |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Mir ist gerade aufgefallen dass das Konvertieren der einzelnen Bilder sowieso sehr schnell geht, sodass eine Progressbar für die einzelnen Files gar nicht nötig ist.
Doch man soll ganze Ordner auswählen, und diese dann aufeinmal konvertieren können. Könnte man da dann eine ProgressBar ins Spiel bringen ? Wenn ja wie ? |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Klar. Zähle pro Datei weiter.
|
Re: BMP2JPEG - Konvertieren mit Progressbar ?
ok. also das mit dem ordner auswählen Dialog hab ich nun hinbekommen ;-)
doch wie kann ich denn jede Datei nacheinander konvertieren lassen und bei jeder Datei weiterzählen ? |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Setzte ProgressBar.Max := DateiAnzahl.
In einer Schleife gehst Du durch die Namensliste des OpenDialogs. Für jeden Namen lädst Du die BMP, speicherst sie als JPG und inkrementierst dann ProgressBar.Position um 1. Alternative:Du kannst natürlich das Ganze noch etwas exakter machen, indem dem Du die Größe der Dateien verwendest, anstatt sie nur zu zählen. Also: ProgressBar.Max := Summe der BMP-Dateigrößen Nach Konvertierung einer Datei ProgressBar.Position := ProgressBar.Position + BMP-Dateigröße. Klar? Maël. |
Re: BMP2JPEG - Konvertieren mit Progressbar ?
Zitat:
|
Re: BMP2JPEG - Konvertieren mit Progressbar ?
bei der eins-pro-datei-weiterzähl-methode wird jede datei gleich behandelt, egalwie groß sie ist
bei der datei-größen-version geht der fortschritt bei einer größeren datei weiter als bei kleineren, also ein wenig genauer :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz