Einzelnen Beitrag anzeigen

Yellow579
(Gast)

n/a Beiträge
 
#8

Re: Bild wird negativ gedruckt

  Alt 25. Jun 2008, 11:11
Hallo Moony!

Du verwendest bzw. nutzt die Transparent Eigenschaft von TBitmap aus und da liegt das Problem. Delphi-Referenz durchsuchenTransparent, Delphi-Referenz durchsuchenTransparentMode und Delphi-Referenz durchsuchenTransparentColor werden von der VCL angeboten und diese implementiert alle Routinen so, dass sie diese Eigenschaft interpretiert und entsprechend umsetzt. Auf der WinAPI Ebene gibt es diese Eigenschaft nicht, dort musst du eigentlich per Hand mit Masken arbeiten und alle nicht transparenten Teile auf dein Ziel malen lassen.

Problem: MSDN-Library durchsuchenBitBlt() und andere WinAPI kennen keine TransparentColor und malen somit diese mit. Deine Rosa-Farbe ist deine TransparentColor und wird somit mit ausgegeben.

Lösung: Erzeuge dir einen DC mit dem Ergebnisbild, also mit schon umgesetzter Transparenz. Dies erreichst du z.B. in dem du ein TBitmap anlegst und darauf mit Draw() einmal das Bild mit der Transparenzangabe raufzeichnen lässt. Da die Standardfarbe von einem TBitmap (bzw. DC) weiß ist, werden deine Ecken weiß sein, was der Papierfarbe entsprechend sollte. Somit würde das Ausdrucken ein rundes Bild mit weißen Ecken erzeugen.

Zur Kontrolle lege dir ein TImage auf dein Formular und weise mit Assign() dein endgültiges Bild vor dem Ausdrucken zu. Das TImage sollte das richtige Bild anzeigen - Voraussetzung ist dabei aber auch, dass die Transparent Eigenschaft von dem zugewiesenen TBitmap und vom anzeigenden TImage false sind.

Gruss,
Yellow
  Mit Zitat antworten Zitat