Autor Beitrag
FatalError
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN ME
D6 Pers
BeitragVerfasst: Fr 05.11.04 23:56 
Hi!

Normalerweise sollte ma ja meinen, wenn man ein Bitmap in ein kleineres Image lädt (Image1,loadfromfile('hier.bmp')), und dieses Image abspeichert ((Image1,Savetofile('hier.bmp'), sollte man eine Bitmap in der Größe des Images vorliegen haben. Offensichtlich wird aber die gesamte alte Bitmap ins Image geladen, aber eben nur ein kleiner Teil angezeigt.

Wie kann man also eine Bitmap zuschneiden? Der folgende Code gibt die Fehlermeldung aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.FormCreate(Sender: TObject);
var Rec: TRect;
    B: TBitmap;
begin
  Image1.Picture.LoadFromFile('ggid.jpg');
  //Neues Bitmap erzeugen
  B := TBitmap.Create;
  B.Assign(Image1.Canvas);
  //Größe setzen
  B.Height:= 100;
  B.Width:= 100;
  Image1.Picture.Assign(B);
  //Bitmap speichern.
  Image1.Picture.SaveToFile('ggid.jpg');
end;


ausblenden Quelltext
1:
Can only modify an image if it contains a bitmap					




Grüße
Andy :wink:
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 06.11.04 00:44 
Probier mal:

in Zeile 8: B.Assign(Image1.Picture.Bitmap);
in Zeile 12: Image1.Picture.Bitmap.Assign(b);

Dann sollte es eigentlich gehen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
FatalError Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN ME
D6 Pers
BeitragVerfasst: Sa 06.11.04 13:05 
Danke dir, jetzt klappts:-) :D

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.FormCreate(Sender: TObject);
var Rec: TRect;
    B: TBitmap;
begin
  Image1.Picture.LoadFromFile('ggid.bmp');
  //Neues Bitmap erzeugen
  B := TBitmap.Create;
  B.Assign(Image1.Picture.Bitmap);
  //Größe setzen
  B.Height:= 100;
  B.Width:= 100;
  Image1.Picture.Bitmap.Assign(B);
  //Bitmap speichern.
  Image1.Picture.SaveToFile('ggid.bmp');
end;


Allerdings musste ich jetzt mit Bitmap arbeiten, wenn ich jpeg nehme kommt der Fehler "JPEG Error #52"


Viel Grüße
Andy :wink: