Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Canvas in Image zeichnen (https://www.delphipraxis.net/30718-canvas-image-zeichnen.html)

ArmyMan 28. Sep 2004 14:20


Canvas in Image zeichnen
 
Hallo allerseits

Hab mal ne frage.
Wie kann ich einen Canvas in ein Image rein zeichnen um dann als .bmp oder .jpeg abzuspeichern??
Versuche es schon ewig aber finde irgends wie keine Lösung.

Danke im voraus
ArmyMan

Dax 28. Sep 2004 14:24

Re: Canvas in Image zeichnen
 
Zeichne doch ein eine TBitmap.Canvas. Wenn du dann das ganze speichern willst, rufst du einfach TBitmap.Picture.SaveTo*** auf.

ArmyMan 28. Sep 2004 14:29

Re: Canvas in Image zeichnen
 
Ja. Hab ich versucht, aber wie genau geht das? Kanns du mir einen Beispiel Quelltext zeigen bitte.

Dax 28. Sep 2004 14:31

Re: Canvas in Image zeichnen
 
Delphi-Quellcode:
var bmp: TBitmap;

bmp := TBitmap.Create; //Erzeugen
bmp.Canvas.Draw.... //Was reinmalen
bmp.Picture.SaveToFile('C:\foo.bmp'); //speichern

maximus Caesar 28. Sep 2004 14:33

Re: Canvas in Image zeichnen
 
Du kannst natürlich auch folgendes machen:
TImage.Canvas.Draw

ArmyMan 28. Sep 2004 14:35

Re: Canvas in Image zeichnen
 
Ok. Das weiss ich. Jetzt wie kann ich ein Canvas in ein Bitmap zeichnen???
Ich habe ein fertig gezeichnetes canvas das ich in ein neues zeichnen möchte um es dann als .bmp zu speichern.
Wie funtzt das??

ArmyMan

Dax 28. Sep 2004 14:35

Re: Canvas in Image zeichnen
 
Delphi-Quellcode:
TBitmap.Canvas := MyCanvas;

ArmyMan 28. Sep 2004 14:50

Re: Canvas in Image zeichnen
 
Hab ich versucht aber es funktioniert nicht.
Folgender Fehler:

cannot assign to a Read-Only property

Was bedeutet das und wie kann ich das zum laufen bringen?

ArmyMan

roderich 28. Sep 2004 14:54

Re: Canvas in Image zeichnen
 
schau dir mal Draw, StretchDraw oder CopyRect an.

Roderich

static_cast 28. Sep 2004 14:57

Re: Canvas in Image zeichnen
 
Hi,

Zitat:

Zitat von Dax
Delphi-Quellcode:
TBitmap.Canvas := MyCanvas;

so würd ich das nicht unbedingt machen dann überschreibst du ja dein zeiger vom canvas beim bitmap mit dem vom MyCanvas. Besser ist es es so zu lösen: Destination.Assign(Source);

sprich:
Delphi-Quellcode:
TBitmap.Canvas.Assign(MyCanvas);
Grüsse
Daniel

ArmyMan 28. Sep 2004 15:07

Re: Canvas in Image zeichnen
 
Funktioniert nicht...
Oh mann!!! Ich weiss nicht was ich tun soll.

Delphi-Quellcode:
var
  b : TBitmap;
begin
  if SaveDialog.Execute then
  begin
    b := TBitmap.Create;
    blatt.CopyRect(b.Canvas.ClipRect,blatt,blatt.ClipRect);
    b.SaveToFile(savedialog.FileName);
  end;
end;
Blatt entspricht MyCanvas

Was ist falsch hier?

static_cast 28. Sep 2004 15:22

Re: Canvas in Image zeichnen
 
Was genau hast du denn vor?

Du willst Canvas A nach Canvas B kopieren?

Delphi-Quellcode:
BitBlt(B.Canvas.Handle,0,0,B.Width,B.Height,blatt.Canvas.Handle,0,0,SRCCOPY);

ArmyMan 28. Sep 2004 15:24

Re: Canvas in Image zeichnen
 
Ja das hab ich vor. Aber dass was du geschrieben hast funktioniert nicht!

static_cast 28. Sep 2004 15:26

Re: Canvas in Image zeichnen
 
was genau geht denn nicht?

ArmyMan 28. Sep 2004 15:28

Re: Canvas in Image zeichnen
 
Nach dem speichern habe ich ein bild das 0 kb gross ist und nicht enthält. Aber das canvas hat 100%ig etwas drin!

mytar 28. Sep 2004 15:34

Re: Canvas in Image zeichnen
 
BMPs sind ja immer so groß.

Eignet sich dafür nicht Delphi-Referenz durchsuchenTJPEGImage aus der Unit jpeg besser.
Da kann man ja auch noch komprimieren (Delphi-Referenz durchsuchenCompress) und sogar die Qualität (Delphi-Referenz durchsuchenCompressionQuality) setzen.

greetz :-D

ArmyMan 28. Sep 2004 15:53

Re: Canvas in Image zeichnen
 
Das kommt doch gar nicht drauf an ob man BMP oder JPEG nimmt. Das Problem das ich habe ist das Zeichnen von einem Canvas ins Andere!

mytar 28. Sep 2004 15:58

Re: Canvas in Image zeichnen
 
Sieh dir dazu in der OH Delphi-Referenz durchsuchenTJPEGImage.
Da ist ein Beispiel drinnen. :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 Uhr.

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