AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas - > Bitmap

Ein Thema von Jonas Shinaniganz · begonnen am 23. Jul 2012 · letzter Beitrag vom 23. Jul 2012
 
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#1

Canvas - > Bitmap

  Alt 23. Jul 2012, 10:46
Hallo,

Ich habe schon fleißig das Forum durchstöbert und auch einiges gefunden aber leider konnte Ich mir daraus nichts funktionsfähiges gutes zusammenbasteln. Habe nur was von dpi, metafiles etc etc gelesen...

Ich habe eine Komponente die auf einem Canvas Grapiken zeichnet. Die Komponente ist an Ihrem einsatzort nicht sonderlich groß.

Mein Problem: Die Canvas - Auflösung ist abhängig vom Bildschirm.

Ich würde gerne eine zweite Canvas für meine Komponete erstellen, welche nie sichtbar ist und deren width / height in Pixeln von mir angegeben wird.

Ich möchte jetzt im Grunde folgendes machen: Die Canvas der Grapik-Komponente soll ohne sich zu zeichnen (also non-visuell) auf eine 2000px mal 2000 px Fläche skaliert werden, diese Werte würde ich evt noch gerne dynamisch machen. Dann wird das onscale event ja automatisch ausgelöst und die canvas wird neu gezeichnet.(allerdings wieder nicht sichtbar).

Zum Schluss mit meiner SaveCanvas - Methode abgespeichern.

Sobald Ich die unsichtbare Canvas mit meiner wunschauflösung gezeichnet habe komme Ich wieder alleine klar

Meine Canvas Save Methode sieht so aus:
Delphi-Quellcode:
procedure SaveCanvas(SaveCanvas : TCanvas; FileName : string);
var
  Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  Try
    // Hier nicht 500x500 sonder die Width / Heigth der Canvas, welche Ich dann mit
    // Client-Rect berechne oder mit übergebe
    Bitmap.Width := 500;
    Bitmap.Height := 500;
    BitBlt(Bitmap.Canvas.Handle,0,0,Bitmap.Width,Bitmap.Height,
           SaveCanvas.Handle,0,0,SRCCOPY);
    Bitmap.SaveToFile(FileName);
  Finally
    Bitmap.Free;
  end;
end;
So stelle Ich mir meine Neue Klasse vor:
Delphi-Quellcode:
  
type
  TSimpleChartScaleable := class(TSimpleChart);
    InvisWidth : Integer;
    InvisHeigth : Integer;
    InvisCanvas : TCanvas;
Kann mir jemand weiterhelfe? Ich habe Keine Ahnung wie Ich der Canvas Befehle eine feste größe zu haben und sich dann entsprechend vollzeichnen zu lassen um für meinen Export bereit zu stehen.

Grüße
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 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