Xojo Conferences
MBSSep2018MunichDE
XDCMay2019MiamiUSA

Transparenz unter Windows (Real Studio network user group Deutschland Mailinglist archive)

Back to the thread list
Previous thread: Auswahl folgt Maus
Next thread: TFTP Server


Probleme mit String Bearbeitung   -   Markus Schnell
  Transparenz unter Windows   -   Stefan Mettenbrink

Transparenz unter Windows
Date: 16.08.10 07:11 (Mon, 16 Aug 2010 08:11:59 +0200)
From: Stefan Mettenbrink
Ich kämpfe noch immer mit der Druckausgabe unter Windows. Dort gebe
ich Bilder auf der Seite aus, die weiße Bereiche haben. Diese weißen
Bereiche sind als transparent definiert und werden unter Mac OS auch
tansparent ausgegeben. Unter Windows sind die Bereiche schwarz :-(

Ein kleines Beispielprojekt (mit REALstudio 2010r1 erstellt) fndet sich
hier:

<http://www.familienbande-genealogie.de/Beispiel_Drucken.zip>

Es enthält ein Fenster mit PushButton. In dessen Action-Event befindet
sich folgender Code:
dim PGrafic as Graphics
Dim PageSetup as PrinterSetup

PGrafic=OpenPrinterDialog(PageSetup)

PGrafic.DrawPicture blau,0,0
PGrafic.DrawPicture rot,200,200

Das Bild blau ist eine rechteckige blaue Fläche (1000x1000Pixel), das
Bild rot hat einen roten Kreis auf weißem Hintergrund, in RS ist
vorgegeben, dass die weiße Fläche transparent ist.

Unte Mac Os ist das Ergebnis wie gewünscht, unter Windows (Ausgabe per
FreePDF als Drucker, aber auch andere Drucker liefern dasselbe Ergebnis)
erhalte ich schwarze Flächen, die eigentlich transparent sein sollten.
Wenn ich jedoch die Ausgabe nicht zum Drucker schicke, sondern in ein
Graphics eines Picture ausgebe und das dann als JPEG sichere, ist die
Transparent OK. Generell funktionieren sollte es also. Lediglich die
Druckausgabe hat anscheinend ein Problem :-(

Hat jemand eine Lösung dafür?

Ich habe schon versucht PGrafic als JPEG zu sichern, anschließend das
gesicherte (korrekte) Bild wieder zu laden und in PGrafic zu zeichnen.

So:
p1.Graphics=PGrafic

und so:
bis1=PGrafic.Height
bis2=PGrafic.Width
for i=0 to bis1
for j=0 to bis2
p1.Graphics.Pixel(i,j)=PGrafic.Pixel(i,j)
next//j
next//i

Leider erhalte ich dann immer ein leeres JPEG :-(

Ich habe noch nicht versucht, die Ausgabe gleich in ein Pickture zu
Zeichnen und dann auszudrucken. Dafür müsste ich reichlich Code
umstricken. Das erscheint mir zu zeitaufwendig. Zumal es ja eigentlich
das korrekte Ergebnis liefern müsste. Ich würde mich freuen, wenn
ihr eine Lösung hättet, das würde mir sicher reichlich Arbeit
sparen.

MfG, Metti.