bummi hat folgendes geschrieben : |
Das bild wird von meiner Routine immer komplett in das gewählte Rechteck gemalt, wenn das TImage in welches Du malen möchtest kleiner ist als das Rechteck siehst Du freilich hiervon nicht alles. |
Es ist ja aber gar nicht kleiner, sondern als Quell-Grafik grösser und soll kleiner skaliert werden, daher müsste das hier doch klappen, tut es aber nicht:
Delphi-Quelltext
1:
| ScaleImage(Image1.Picture.Graphic, Image1.Canvas,Rect(0,0,200,200)); |
Ich würde das so übersetzen: "Nimm die Grafik aus Image1 und male sie skaliert auf Image1.Canvas".
Wenn du sagst:
bummi hat folgendes geschrieben : |
Die Prozedur bekommt nur das Canvas übergeben und hat keine Ahnund davon ob Du auf eine Form, in ein TImage , auf den Drucker oder was auch immer ausgeben willst.
Die Verantwortung für die Größe des Zeichenbereiches liegt bei Dir. |
... dann müsste der obige Code doch funktionieren, oder? Denn die Prozedur weiss ja nicht, worauf gemalt werden soll. Demnach sollte sie auch auf die Canvas der Quell-Komponente malen. Macht sie aber nicht.
Der Hintergrund meiner Überlegungen ist praktischer Natur: Ich habe eine Komponente TLabeledImage, die mit meinem (langsamen) Code Grafiken skaliert. Ich suche nun eine Verbesserung. In meinem Programm werden zuerst in zur Laufzeit dynamisch erzeugten TLabeledImage's Grafikdateien geladen und dann gleich skaliert:
Delphi-Quelltext
1: 2:
| LabeledImage1.Picture.LoadFromFile(OpenPictureDlg1.Files[i]); LabeledImage1.ScaleImage(77, 102); |
Naja, und das möchte ich halt schneller haben, aber eben genauso: Im
selben Image skaliert malen, nicht woanders, so dass man dann auf der Programmoberfläche (genauer auf einer ScrollBox) beliebig viele (= je nachdem, wie viele Dateien man lädt) Thumbnails hat. Diese Thumbnails müssen aber Komponenten vom Typ TLabeledImage sein - eben jene, in denen die Dateien geladen wurden und deren Grafiken jetzt skaliert sind!
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!