Eigentlich ist das keine Grafikfrage, aber ich frag dennoch mal hier.
Also ich muß irgendwann bei Assign nicht richtig aufgepasst haben. Eigentlich dachte ich, daß das Funktioniert:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var Bmp1, Bmp2: TBitmap; begin Bmp1 := TBitmap.Create; Bmp2 := TBitmap.Create; try Bmp1.LoadFromFile('d:\EinBild.bmp'); Bmp2.Width := 200; Bmp2.Height := 200; Bmp2.Canvas.StretchDraw(Rect(0, 0, Bmp2.Width, Bmp2.Height), Bmp1); Bmp1.Assign(Bmp2); Form1.Canvas.Draw(0, 0, Bmp1); finally Bmp2.Free; Bmp1.Free end; end; |
wichtig ist dieser Part
Quelltext
1: 2:
| Bmp1.Assign(Bmp2); Form1.Canvas.Draw(0, 0, Bmp1); |
Gezeichnet wird hier eine Bitmap die die Größe 200x200 hat, allerdings
nicht gestretcht ist. Es ist ein Ausschnit die großen Grafik.
Mache ich das so
Quelltext
1:
| Form1.Canvas.Draw(0, 0, Bmp2); |
dann ist die Grafik gestrecht. Der Fehler liegt also in
Quelltext
Es werden hier nur die Masse übertragen, aber nicht das Bild.
Eigentlich hab ich bis jetzt immer gedacht, daß Assign solche Kleinigkeiten überträt. Sonderbar ist, daß ich das schon immer so gemacht habe. Jetzt kann ich immer wieder eine neues Projekt anlegen und es geht immer noch nicht. Rechner neu starten bringt auch nichts. Alte Projekte geöffnet und gestartet - keine Probleme. Code angeguckt - ist fast das gleiche wie hier. Kaum Unterschiede.
Hab ich also irgendwann nicht richtig bei Assign aufgepasst? Oder enthällt der Code einen Fehler den ich nicht sehe.
Ich hab den Code irgendwann so abgeändert
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var Bmp1, Bmp2: TBitmap; begin Bmp1 := TBitmap.Create; Bmp2 := TBitmap.Create; try Bmp1.LoadFromFile('d:\joanne017b.bmp'); Bmp2.Assign(Bmp1); Bmp1.Width := 200; Bmp1.Height := 200; Bmp1.Canvas.StretchDraw(Rect(0, 0, Bmp1.Width, Bmp1.Height), Bmp2); Form1.Canvas.Draw(0, 0, Bmp1); finally Bmp2.Free; Bmp1.Free end; end; |
Es funktioniert. Also irgendwie ist mir das zu hoch.