Autor Beitrag
Maa83
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 160

Win XP Pro
D6 Ent
BeitragVerfasst: Fr 05.11.04 09:56 
Hallo,

wie kann ich eine TBitmap scalieren?

also ich habe eine .bmp-Datei mit den Maßen 250x250

diese möchte ich jetzt mehrfach auf eine TPaintBox zeichnen.

Bevor ich dies mache möchte ich die Datei aber in der Größe anpassen. z.B. auf 20x20

mit Height und Width wird das Bild leider abgeschnitten und nicht "angepasst"!

hoffe Ihr könnt mir helfen.
Maa83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 160

Win XP Pro
D6 Ent
BeitragVerfasst: Fr 05.11.04 09:59 
sorry das ich hier gleich nochmal poste (ich finde keinen editieren Knopf :( )

das ganze hab ich mit der Klasse TBitmap realisiert.
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Fr 05.11.04 10:36 
Hallo,

schau einmal in der Delphihilfe nach StretchDraw. Da gibt es sogar ein Beispiel dazu.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Fr 05.11.04 11:32 
Du kannst mit Convas.CopyRect das Bild direkt auf die PaintBox kopieren und dabei die Größe variieren.

_________________
Linux und OpenSource rulez!
Maa83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 160

Win XP Pro
D6 Ent
BeitragVerfasst: Fr 05.11.04 12:29 
ok, vielen Dank! Funzt wunderbar :)
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Fr 05.11.04 19:25 
@Sourcehunter: Wenn man ein Bild nur 1x skalieren muss dann geht das vielleicht. Wenn man das dann auch noch kacheln möchte, dann kann ich davon nur abraten. Das bild für jedes Zeichnen und jede Kache neu Skaliert werden muss. Das ist unperformant.

Du solltest dir ein temporäres Biitmap erstellen in welches du dein Bild hineinskaliert und dieses Bild solltest du dann zum Zeichnen verwenden. Nach Möglichkeit würde es sich anbieten, dieses Bild zu begin deiner Anwendung zu erstellen und dieses bis zum Ende zu belassen. Oder wie lange auch immer du dieses kleine Bild brauchst.

Die wohl schnellste Möglichkeit ein Bild zu kacheln ist mit dieser Methode.
ausblenden Delphi-Quelltext
1:
2:
3:
Canvas.Brush.Bitmap := TemporäresBild;
Canvas.FillRect(Rect);
Canvas.Brush.Bitmap := nil;

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Fr 05.11.04 20:02 
Man kanns ja in 'ne temporäre Bitmap kopieren.

_________________
Linux und OpenSource rulez!