Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi BMP2JPEG - Konvertieren mit Progressbar ? (https://www.delphipraxis.net/47535-bmp2jpeg-konvertieren-mit-progressbar.html)

Assun 12. Jun 2005 19:14


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

jfheins 12. Jun 2005 19:18

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
Da gibt es eigentlich nicht viel ...

Min, Max, Step(It) und Position ist schon fast alles ;)

Assun 12. Jun 2005 19:20

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
Diese eigenschaften kenne ich ja !

Ich weis nur nicht wie man sie einsetzt ;-)

Ultimator 12. Jun 2005 19:23

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 ;)

jfheins 12. Jun 2005 19:24

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 :!:

malo 12. Jun 2005 19:25

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:

jfheins 12. Jun 2005 19:33

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;

idontwantaname 12. Jun 2005 19:39

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

100nF 12. Jun 2005 19:40

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

Ultimator 12. Jun 2005 19:48

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
Ich vermute mal mit
TJpegImage.Assign(TBitmap)
Deswegen wird das vermutlich n kleines Problem geben :?

Khabarakh 12. Jun 2005 20:04

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.

Assun 12. Jun 2005 20:14

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;

100nF 12. Jun 2005 20:27

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
ui, das sieht wirklich nicht gut aus, ich glaube nicht das das geht.

Assun 12. Jun 2005 20:33

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
irgendwie muss es doch gehen :-(

Airblader 12. Jun 2005 20:47

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
Mit der Konvertierung nicht.
Da wirds schon einen Algo brauchen, in den du das einfplanzen kannst.

air

Khabarakh 12. Jun 2005 20:54

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: ?

Assun 12. Jun 2005 20:58

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
nein ! die bilder sollen lediglich umgewandelt werden

jfheins 12. Jun 2005 20:59

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

;)

Assun 13. Jun 2005 13:21

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 ?

Luckie 13. Jun 2005 13:26

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
Klar. Zähle pro Datei weiter.

Assun 7. Jul 2005 17:07

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 ?

mael 7. Jul 2005 17:55

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.

Luckie 7. Jul 2005 18:07

Re: BMP2JPEG - Konvertieren mit Progressbar ?
 
Zitat:

Zitat von mael
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.

Wo ist denn das genauer? :gruebel:

idontwantaname 7. Jul 2005 18:24

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 22:27 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