Autor Beitrag
Borlox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Do 30.08.07 10:02 
Hi Leute,

seit Jahren möchte ich endlich mal wieder ein wenig was mit Delphi machen. Ist echt schon lange her! Und brauche mal ein paar Denkansätze von euch! Wär cool, wenn ihr mich dabei ein wenig unterstützen würdet.

Ich möchte gerne ein Programm schreiben, wo ich nur einen Ordner-Pfad angebe und er mir dann aus allen JPGs in dem Ordner Thumbnails macht und diese direkt in eine ZIP-Datei packt ohne dass die Dateien dann irgendwo noch auf der Festplatte auftauchen!

Ist das so einfach möglich? Wie mache ich das am Besten?

Gruß
Borlox
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 30.08.07 10:52 
was meinst du mit thumbnails? kleine bilder? wie groß sollen die denn sein?

jedenfalls, wenn du ein verzeichnis nach bildern durchsuchen willst, das geht mit den Funktionen FindFirst und FindNext.

Verkleinern geht glaub ich ungefähr so, indem du sie in ein Image lädst und dann Stretch := True und eben verkleinerst.

dann mit einer Komponente (weiß nimmer wie die heißt, aber da gibts was) zippen und die orginale löschen.
Borlox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Do 30.08.07 11:40 
Ja, kleine Vorschaubilder! Sollten natürlich die gleichen Seitenverhältnisse haben! Wie auch immer man das damit macht?

Ok, immer das nächste Bild in einem Ordner finden, das bekomme ich hin, aber wie lade ich denn so ein Image? Wohin lade ich es? Soll ja auch nicht angezeigt werden, was meiner Meinung auch immer viel Speicher verbraucht, was unnötig wäre!

Und ich möchte das Image dann ja direkt in die Zip-Datei haben und nicht erst irgendwo auf der Platte zwischenspeichern! Wie mache ich das denn?

Gruß
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 30.08.07 11:46 
oje, wenn du ein so optimiertes programm haben willst, dann kann ich dir nicht helfen.

das verkleinern hätte ich gemacht, mit Image1.LoadFromFile und dann das Image seitenverhältnistreu verkleinert und dann das bild wieder gespeichert. so ungefähr
Borlox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Do 30.08.07 13:19 
Muss nicht so ganz optimiert seit! Mir sit eigentlich nur wichtig, dass die Daten nicht unbedingt erst irgendwo zwischengespeichert werden müssen, sondern direkt in die ZIP-Datei geschrieben werden.

Würd mich über ein bisschen Beispielcode auch sehr freuen!

Gruß
Borlox
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 30.08.07 13:37 
hoffentlich hilfts dir was, wenn ich dir das einfach so hinwerfe:
die procedure passt die größe von dem Bild an Panel1 an
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
uses JPEG;
//...
procedure BildAnzeigen(fn: string); //parameter ist FileName
var i,j: real;
begin
  if FileExists(fn) then
    With Image1 do
    try
      Constraints.maxWidth := 0;
      Constraints.maxHeight := 0;
      Stretch := False;
      Autosize := True;
      Image1.Picture.graphic.LoadFromFile(fn);
      i := Width / Panel1.Width;
      j := Height / Panel1.Height;
      if j > i then i := j;
      AutoSize := False;
      Stretch := True;
      Constraints.maxWidth := Round(Width / i);
      Constraints.maxHeight := Round(Height / i);
    except
      MessageDlg('Datei "' + fn + '" kann nicht geöffnet und angezeigt werden.',mtError,[mbOk],0);
    end;
end;


aber ich weiß nicht, wie du das bild direkt in eine zip komprimieren kannst, sondern nur wie du es als jpg speicherst.
Borlox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Do 30.08.07 14:19 
Ehrlich gesagt, hilft es mir nicht so richtig weiter! Wie gesagt, habe leider schon länger nichts mehr mit Delphi gemacht! Wozu wird denn überhaupt die Größe an Panel1 angepasst? Was bringt mir das? Kann ich dafür nicht einfach die WErte nehmen, die ich gerne hätte?

CU
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 30.08.07 14:52 
na dann musst du hald die Breite und die Höhe des Panels (das einzige was im prinzip verwendet wird) durch die werte ersetzen.
Borlox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Do 30.08.07 15:12 
Wozu brauche ich denn ÜBERHAUPT ein Panel? Warum kann ich Panel1.Width etc. nicht einfach durch nen Wert ersetzen und somit das Bild berechnen?
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 30.08.07 15:28 
ich hab doch gesagt du brauchst das Panel nicht, und gesagt, dass du die Werte ersetzen kannst.
Missverständnis: ich hab den quelltext nicht für dich geschrieben und auch nicht angepasst, deswegen musst du ihn selber noch anpassen.