Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Canvas in TBitmap ??? (https://www.delphipraxis.net/36782-canvas-tbitmap.html)

GLaforge 25. Dez 2004 18:01


Canvas in TBitmap ???
 
Hi,
hab mal wieder eine sicherlich leicht zu beantwortende Frage für euch. Hab schon oft gelesen, dass man z.Bsp.: auf eine PaintBox etwas zeichnet und dies dann in TImage umwandeln kann. Ist dies richtig und welche Vorteile würde mir das bringen. Würde mich über zahlreiche Antworten freuen - denkt bitte daran ich bin kein Informatiker nur ein einfacher Info-Schüler :wink: !!
Vielen Dank

Eichhoernchen 25. Dez 2004 23:13

Re: Canvas in TImage ???
 
ich vermute du kannst die bitmap der paintbox der bitmap des Images mit assign zuweisen, jedoch seh ich da keinen Sinn. Warum erst Paintbiox nhemen dann auf das image knallen wenn man auch gleich nen Image nehmen kann?

Also ich nehme für so zeichen zeugs immer nen TImage

Matze 25. Dez 2004 23:19

Re: Canvas in TImage ???
 
Eine PaintBox ist schneller.
Du brauchst dann kein Image, um das Bild der Paintbox zu speichern, falls du das (Image1.SaveToFile()) vorhast.

Einfach ein Bitmap erstellen und da den Inhalt der Paintbox draufknallen.

bigg 25. Dez 2004 23:39

Re: Canvas in TImage ???
 
"Zeichne" auf eine TBitmap im "Hintergrund".
Wenn du alles gezeichnet hast, malst du alles über Canvas.Draw(x,y, TBitmap) auf dein Formular.
Im OnPaint Ereignis deines Fensters zeichnest du die Grafik neu.

supermuckl 25. Dez 2004 23:40

Re: Canvas in TImage ???
 
bitblt wäre performanter. da fallen einige überprüfungen weg in der vcl

GLaforge 26. Dez 2004 12:54

Re: Canvas in TBitmap ???
 
Hi,
ich merk gerade, dass ich ein inhaltlichen Fehler eingebaut habe. Ich möcht natürlich wissen wie ich ein mit Canvas gezeichnetes Bild (über PaintBox) in TBitmap transformieren kann. Ich bitte um möglichst leicht verständliche Code-Schnipsel oder alles was mir weiter hilft.

cu

hansklok 26. Dez 2004 13:02

Re: Canvas in TBitmap ???
 
Hallo, ich hoffe, dass der folgende Code richtig in meinem Kopf abgespeichert ist!

Du benötigst ne PaintBox!

Delphi-Quellcode:
var
Bitmap: TBitmap;

...
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap:= TBitmap.Create; //erstellt eine Bitmap
Bitmap.PixelFormat:= pf32bit; //Bitmap erhält eine Bittiefe von 32 Bit (hohe Qualität)
Bitmap.Heigth:= PaintBox1.Heigth; //Höhe der Bitmap ist gleich der Höhe der Paintbox
Bitmap.Width:= Paintbox1.Width; //Breite der Bitmap ist gleich der Breite der Paintbox

PaintBox1.Canvas.Draw(0,0,Bitmap); //Bitmap wird in Paintbox gezeichnet

Bitmap.SaveToFile('C:\1.bmp'); //Bitmap wird als Bitmap auf Festplatte abgespeichert
end;
Nun kannst du durch die Canvas Eigenschaft der Bitmap alles Zeichenoperationen durchführen!

GLaforge 26. Dez 2004 13:10

Re: Canvas in TBitmap ???
 
thx @ hansklok ,damit kann ich was anfangen

San 4. Jan 2005 22:06

Re: Canvas in TBitmap ???
 
Hallo,

habe auch versucht das Bild einer Paintbox in ein Bitmap zu zeichnen und dieses dann abzuspeichern. Habe schon verschiedene Methoden probiert, aber keine hat funktioniert.

Habe es jetzt auch einmal mit dem Code von hansklok probiert. Damit erhielt ich keine Fehlermeldung (musste nur heigth in height umändern) und es wurde auch etwas gespeichert. Allerdings wurde dabei der Inhalt meiner Paintbox gelöscht und die gespeicherte Datei ist auch nur weiß, also leer.

Außerdem würde ich gerne selber einen Namen für das Bild eingeben und den Speicherort bestimmen. Dies kann man doch dann eigentlich nur mit einem SaveDialog machen, oder?
Also so etwa.
Code:
Bitmap.SaveToFile(SaveDialog1.Filename);
Dabei erhalte ich allerdings immer die Fehlermeldung undefinierter Bezeichner SaveToFile oder so oder mein Programm stürzt ab, sobald ich auf Speicher klicke.
Waran liegt das?
Auch mit picture.savetofile funktioniert das ganze nicht.

wäre wriklich toll, wenn mir jemand weiterhelfen könnte. schonmal vielen dank im voraus!!

liebe grüße
san

Magier 4. Jan 2005 22:25

Re: Canvas in TBitmap ???
 
Zitat:

Zitat von San
Außerdem würde ich gerne selber einen Namen für das Bild eingeben und den Speicherort bestimmen. Dies kann man doch dann eigentlich nur mit einem SaveDialog machen, oder?
Also so etwa.
Code:
Bitmap.SaveToFile(SaveDialog1.Filename);
Dabei erhalte ich allerdings immer die Fehlermeldung undefinierter Bezeichner SaveToFile oder so oder mein Programm stürzt ab, sobald ich auf Speicher klicke.
Waran liegt das?
Auch mit picture.savetofile funktioniert das ganze nicht.

wird der savedialog den auch per savedialog1.execute aufgerufen?

ich habe bisher nur sehr wenig mit tcanvas gearbeitet, aber muss es nicht anstatt
Delphi-Quellcode:
PaintBox1.Canvas.Draw(0,0,Bitmap); //Bitmap wird in Paintbox gezeichnet
so heißen
Delphi-Quellcode:
Bitmap.Canvas.Draw(0,0,PaintBox1); //Bitmap wird in Paintbox gezeichnet
wenn ich mich irre verbessert mich bitte.

mfg
das magier


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz