Autor Beitrag
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Mi 16.10.02 17:41 
Hallo
Ich weiss das man mit
ausblenden Quelltext
1:
bmp.Canvas.StretchDraw(myrect,bmp);					

Die Grösse eines Bitmaps verändern kann. Doch leider kommt es bei mir immer wieder zu Fehlern in der Datei.
Also hier meine Frage. Wie mach StrechDraw das, ein Bild auf eine andere Größe zu bringen.
Ich suche also sozusagen den Quellcode zu der Function StrechDraw oder etwas ähnliches.

cu Patmann
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 16.10.02 23:51 
Ich hoffe, daß dir die Funktionsweise von TRect bekannt ist. TRect ist ein Record und enthält vier Koordinaten. StretchDraw past das Bild in diese Koordinaten ein. Dabei werden die Proportionen nicht beachtet und müssen bei Bedarf selbst berechnet werden.

Allerdings wird es bei deinem Code zu Problemen kommen:

ausblenden Quelltext
1:
bmp.Canvas.StretchDraw(myrect,bmp);					


verkleinert nicht das Bmp Bild, sondern zeichent ein weiteres Bild auf dem Bild. Du solltest also eine zweite Bitmap von der Größe von myRect erstellen und dort dein Bild zeichen. Alternativ kannst du das Bmp Bild nachträglich anpassen. Zu Problem könnte es kommen wenn das gestrechte Bild größer ist als das Alte. Dann hast du nur noch ein Teil des Bildes. Besser ist eben ein zweites Bild.

ausblenden Quelltext
1:
bmp2.Canvas.StretchDraw(rect(0, 0, 32, 32),bmp);					


Dieses Beispiel zeichent Bmp in eine zweites Bild von der Größe 32x32. Bmp2 muß vorher die Koordinaten 32x32 zugewiesen bekommen. Du kannst auch myRect := rect(0, 0, 32, 32) machen.

Wie funktioniert StrechDraw? So in etwas wie CopyRect. Nur sparst du dir eine zweite Rectvariable, da StrechDraw von der jetzigen göße des Bildes ausgeht.
patmann2001 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Do 17.10.02 09:14 
Hey danke,
das ist eine gute Erklärung.
Das war auch meist mein Problem, das ich irgendwie zwei Bilder in einem hatte. 8)

cu Patmann