Autor Beitrag
Calyptus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Mi 03.08.05 18:08 
Hallo,

ich hab hier im Forum schon gesucht und bin auf Sachen wie g32.org und Interpolation gestoßen, was aber leider alles nicht so ganz zum Ziel geführt hat.

Also mein Problem ist:
Ich will sehr viele jpeg Bilder mit Delphi verkleinern (also die Auflösung) und dann auch wieder als jpeg speichern.

Ich habe bisher das:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
...
Img1: TImage32;
...

procedure TForm1.Button2Click(Sender: TObject);
begin

 Img1.Width := 800;
 Img1.Height := 800;

 Img1.Bitmap.LoadFromFile('c:\test.jpg');
 Img1.ScaleMode := smResize;
 Img1.Bitmap.StretchFilter := sfLinear;
 Img1.Bitmap.SaveToFile('c:\test2.jpg');

end;


Probleme dabei:

1. Das Bild wird zwar verkleinert dargestellt, aber in der Ursprünglichen Größe gespeichert
2. Es wird als Bitmap gespeichert (denk ich mal da es 12MB groß ist)


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am Sa 19.11.2005 um 19:16

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 03.08.05 18:29 
Hallo

die g32 nutze ich momentan nicht, kann nicht nachschauen.
aber wo bitte änderst du die Bildgröße? mit loadfromfile wird das Image in der Größe angepaßt. Vorher die Größe zu ändern wird nicht funktionieren.

Es gibt auch Beispiele zu der g32. Dort gibt es auch eins, das sich direkt mit dem resampling befaßt, solltest du auch mal ansehen.

zu2.
graphics32.org/docum...thods/SaveToFile.htm

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Do 04.08.05 01:30 
Ich habs hinbekommen. Ich hab zwar das Gefühl das ich das ganze ein wenig über 100 Ecken mach, aber jpeg.Assign(bitmap32) hat nicht getan. Hier der Code:

ausblenden volle Höhe 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:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
procedure Tform1.transform(pic: String);
var tbmp: TBitmap32;
    bmp:  TBitmap;
    tjpg: TJPEGImage;
begin

      Img1.Bitmap.LoadFromFile(pic);

      tbmp := TBitmap32.Create;
      tjpg := TJPEGImage.Create;
      bmp := TBitmap.Create;

      tjpg.CompressionQuality := TrackBar1.Position * 5;

      tbmp.SetSize(StrToInt(Edit1.Text), StrToInt(Edit2.Text));

      Img1.Bitmap.StretchFilter := SF_CONSTS[Combobox1.ItemIndex];
      Img1.ScaleMode := smResize;
      tbmp.Draw(tbmp.BoundsRect, Img1.Bitmap.BoundsRect, Img1.Bitmap);

      try
        with bmp do
          begin
            Assign(tbmp);
          end;
      finally
       tbmp.Free;
      end;

      try
        with tjpg do
          begin
            Assign(bmp);
          end;
      finally
       bmp.Free;
      end;

      tjpg.SaveToFile('c:\test.jpg');
      tjpg.Free;    
end;

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
delfer
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 19.11.05 19:02 
Titel: Quellcode: Typ von Img1?
Hallo Calyptus und alle

ich glaube, das ist genau das, was ich schon lange suche. Nur kann ich es nicht kompilieren,
weil die Deklaration von Img1 fehlt und ich weiss nicht, was für eine Klasse das ist.

? Img1.Bitmap.LoadFromFile(pic); ?
? Img1.Bitmap.StretchFilter := SF_CONSTS[Combobox1.ItemIndex]; ?
? Img1.ScaleMode := smResize; ?

Danke für weitere Tips
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 19.11.05 19:18 
Hallo!

In Zeile 2 des ersten Quelltextes steht die Deklaration. Es handelt sich um ein TImage32, welches Du im GR32-Package (Download sollte per Google leicht zu finden sein,, weiß die URL gerade nicht :gruebel:) findest.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".