AGB  ·  Datenschutz  ·  Impressum  







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

Text schräg auf Canvas ausgeben

Ein Thema von minimops · begonnen am 14. Jan 2006 · letzter Beitrag vom 2. Aug 2009
Antwort Antwort
Seite 2 von 2     12   
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#11

Re: Text schräg auf Canvas ausgeben

  Alt 1. Aug 2009, 20:31
Zitat von Schwedenbitter:
Zitat von worker:
Für Punkt 2: probiere bsClear (BrushStyle)
Das habe ich gemacht. Aber der folgende Code bringt mir trotzdem nur die Schrift auf das Bild und verdeckt trotz bsClear den Text
Hallo,

das soll er ja auch. Für sowas wie Kopie oder ein Wasserzeichen nimmt man daher "hohlen" Text, bei dem nur die Konturlinien gedruckt werden. Oder man nimmt fette Schrift und druckt sie hellgrau.

Gruss Reinhard

PS es ist auch noch die Frage, was Vordergrund ist - ich würde mal das Wasserzeichen zuerst drucken.
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Text schräg auf Canvas ausgeben

  Alt 2. Aug 2009, 01:12
Zitat von Reinhard Kern:
Für sowas wie Kopie oder ein Wasserzeichen nimmt man daher "hohlen" Text, bei dem nur die Konturlinien gedruckt werden.
Wie geht das mit dem "hohlen" Text?
Zitat von Reinhard Kern:
Oder man nimmt fette Schrift und druckt sie hellgrau.
Genau das macht mein obiger Code. Aber mich stört eben, dass das grau den darunter liegenden Text verdeckt.
Zitat von Reinhard Kern:
PS es ist auch noch die Frage, was Vordergrund ist - ich würde mal das Wasserzeichen zuerst drucken.
Genau das ist mein weiteres Problem. Ich verschmelze ja bereits 2 Bilder miteinander. Einen Text und einen Kopfbogen. Das funktioniert und ich mache das so:
Delphi-Quellcode:
...
QBMP:=TBitmap.Create; // Quellbitmap
ZBMP:=TBitmap.Create; // Zielbitmap
Try
   QBMP.LoadFromFile('Kopfbogen.bmp'); // Kopfbogen laden
   ZBMP.Canvas.Brush.Style:=bsClear; // Durchsichtig malen
   ZBMP.LoadFromFile('Seite 0001.bmp'); // Text laden
   ZBMP.Canvas.BrushCopy(Rect(0, 0, ZBMP.Width, ZBMP.Height),
                         QBMP,
                         Rect(0, 0, QBMP.Width, QBMP.Height),
                         QBMP.Canvas.Pixels[0, 0]);
   ZBMP.PixelFormat:=pf8bit; // 256 Farben
   ZBMP.SaveToFile('Fertiges Bild.bmp'); // Bild speichern
Finally
   QBMP.Free;
   ZBMP.Free;
End;
...
Wenn ich das so auch mit dem Wasserzeichen versuche, dann bekomme ich entweder das Wasserzeichen drüber (mit den unerwünschten Effekten) oder ich vertausche einfach QBMP und ZBMP und dann bekomme ich nur den Text; ganz ohne Wasserzeichen. Was ich aber in Anbetracht von bsClear nicht verstehe.

Was mache ich denn nun verkehrt?
Alex Winzer
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#13

Re: Text schräg auf Canvas ausgeben

  Alt 2. Aug 2009, 03:33
Zitat von Schwedenbitter:
Wie geht das mit dem "hohlen" Text?
Hi,

am einfachsten sucht man sich einen Font ohne Füllung (gibt nicht so viele, aber z.B. Swiss 721 Bold Outline), man kann aber auch "Kopie" in Coreldraw schreiben und schwarzen Rand/keine Füllung wählen und dann als Vektor- oder Pixel-Bild abspeichern.

Von der Logik her müsste man das Wasserzeichen als erstes, somit ganz im Hintergrund drucken usw.

Gruss Reinhard

PS: bsclear ist falsch - es geht nicht um den Brush Style, sondern um den Windows Background Mode, der muss transparent sein.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Text schräg auf Canvas ausgeben

  Alt 2. Aug 2009, 10:28
Hallo,

vielleicht kann auch auf den Einsatz von CorelDraw verzichtet werden: DrawOutlinedText

Gruß Hawkeye
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Text schräg auf Canvas ausgeben

  Alt 2. Aug 2009, 11:29
Zitat von Reinhard Kern:
Von der Logik her müsste man das Wasserzeichen als erstes, somit ganz im Hintergrund drucken usw.
Ja! Problem erkannt! Aber wie mache ich das?

Zitat von Reinhard Kern:
PS: bsclear ist falsch - es geht nicht um den Brush Style, sondern um den Windows Background Mode, der muss transparent sein.
Wie mache ich das ? Wie setze ich den Windows Background Mode?

Ich weiß die Antworten sehr zu schätzen. Aber dass ich nicht weiß, wie man ganz in den Hintergrund druckt bzw. den Windows Background Mode setzt, zeigt schon, dass ich es nicht schaffe. Ich würde mich daher freuen, wenn Ihr - die Wissenden - mir neben dem Nennen von Stichwörtern auch zumindest kurze Hinweise (Quellcode-Schnipsel) gebt, wie es funktioniert.
Das erleichtert übrigens auch mitlesenden Hilfesuchenden mit möglicherweise denselben und zumindest ähnlichen Problemen, eine Lösung zu finden.

Danke, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#16

Re: Text schräg auf Canvas ausgeben

  Alt 2. Aug 2009, 15:15
Zitat von Schwedenbitter:
... Ich würde mich daher freuen, wenn Ihr - die Wissenden - mir neben dem Nennen von Stichwörtern auch zumindest kurze Hinweise (Quellcode-Schnipsel) gebt, wie es funktioniert.
Hallo Alex,

damit habe ich leider ein Problem: da ich schon sehr lange unter Windows programmiere, schon bevor es Delphi gab, habe ich viele Probleme, darunter die Druckerei, direkt mit dem Win32-API gelöst und nicht als VCL-Komponenten. Meine Lösungen sind daher hier nicht veröffentlichbar, aber es findet sich hoffentlich jemand, der Entsprechendes auf VCL-Basis geschrieben hat, das Problem ist ja nicht selten.

Gruss Reinhard
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:40 Uhr.
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