Author | Topic: getDefaultBgColor() - Werte bei XbpBitmap() | |
---|---|---|
![]() | Werner Martl | getDefaultBgColor() - Werte bei XbpBitmap() on Sat, 22 Nov 2014 22:36:54 +0100 |
![]() | Andreas Herdt | Re: getDefaultBgColor() - Werte bei XbpBitmap() on Mon, 24 Nov 2014 10:21:34 +0100 Andreas Herdt Alaska Software -------------------------------------------------------------------- Technical Support: support@alaska-software.com News Server: news.alaska-software.com Homepage: http://www.alaska-software.com WebKnowledgeBase: http://www.alaska-software.com/kbase.shtm Fax European Office: +49 (0) 61 96 - 77 99 99 23 Fax US Office: +1 (646) 218 1281 -------------------------------------------------------------------- "Werner Martl" wrote in message news:4917a788$2664a76e$1b04e0@news.alaska-software.com... Servus, unter 2.0 (560) ist das Verhalten anders als unter 1.90.355. getDefaultBgColor() liefert z. B. bei einem png unter 2.0 16777216, unter 1.9 33554431. Außerdem werden Bilder anders dargestellt, siehe Anhang. Gleicher Code, ganz einfaches XbpBitmap mit loadfile(), das dann mittels eines Static angezeigt wird. Danke, Werner |
![]() | Werner Martl | Re: getDefaultBgColor() - Werte bei XbpBitmap() on Mon, 24 Nov 2014 21:08:51 +0100 Am 24.11.2014 10:21, schrieb Andreas Herdt: > Hallo Herr Martl, Servus Andreas (ist das Du ok?), deshalb hab ich die Bilder so benannt, 19 und 20. Hab an den Support-Account 3 Bilder geschickt: Original und die beiden hier geposteten. Der Quelltext dazu ist einfach: oBitmap := XbpBitmap():new():create() oBitmap:loadfile("ferrari.png") oBitmap:transparentClr := 16777216 oStatic := XbpStatic():new( oDraw,, {300, 300}, {300, 300}) oStatic:type := XBPSTATIC_TYPE_BITMAP oStatic:create():Show() oStatic:SetCaption(oBitmap) |
![]() | Werner Martl | Re: getDefaultBgColor() - Werte bei XbpBitmap() on Mon, 24 Nov 2014 21:17:02 +0100 In diesem Zusammenhang hab ich noch die 2. Frage: Was ist die empfohlene Vorgehensweise seitens Alaska für die Darstellung von Bildern auf farbigen drawingAreas, so wie im gezeigten Quellcode? Unter 1.9 verhält sich das ja komplett anders als unter 2.0. Das hängt dann auch noch vom Bildtyp ab, sogar bmps können einen transparenten Hintergrund haben, das war mir neu. Mein Kenntnisstand war: Nur gif und png unterstützen einen transparenten Hintergrund. Vielen Dank im Voraus. Werner |
![]() | Till Warweg | Re: getDefaultBgColor() - Werte bei XbpBitmap() on Thu, 27 Nov 2014 16:38:27 +0100 Hallo Werner, zunächst einmal: ich kann nicht bestätigen, daß :GetDefaultBGColor() in den beiden Versionen unterschiedliche Werte liefert. Ich erhalte sowohl unter 1.9 als auch unter 2.0 den gleichen Wert (die Farbe Schwarz)? Aber zum eigentlichen Problem: der in :TransparentClr eingestellte Farbwert bewirkt eine Maskierung, bei der die angegebenen Bildbereiche durch Hintergrundinformationen ersetzt werden. Dafür wird für jedes Pixel einzeln der Farbwert berechnet. Ich glaube, genau hier entsteht ein Problem, das dazu führt, daß die Transparenzinformationen in Deiner Grafik verloren gehen. Man erkennt das daran, daß die angezeigten Bilder unter 1.9 und 2.0 eigentlich identisch sind, sich aber in der Helligkeit in Teilbereichen unterscheiden. Wir werden das mit einem der nächsten Updates korrigieren, sodass Dein Code bleiben kann, wie er ist - und zudem bessere Ergebnisse produziert als unter 1.9. Die XbpBitmap-Klasse in 2.0-Version unterstützt Transparenzinforma- tionen in PNGs, BMPs und GIFs. Die Anbindung an die verschiedenen Xbase Part-Klassen ist allerdings noch nicht komplett, sodaß der Ansatz über Maskierung + :TransparentClr weiterhin verwendet muß. In Build 560 sollte die XbpStatic-Klasse allerdings Deine Grafik auch schon ohne :TransparentClr richtig anzeigen! Die anderen Parts folgen schnellstmöglich! Ich hoffe, dies beantwortet Deine Fragen. Mit besten Grüßen, Till Warweg -------------------------------------------------------------------- Technical Support: support@alaska-software.com News Server: news.alaska-software.com Homepage: http://www.alaska-software.com KnowledgeBase: http://www.alaska-software.com/kb -------------------------------------------------------------------- "Werner Martl" schrieb im Newsbeitrag news:83c6b1$5a41c30a$28db4@news.alaska-software.com... > In diesem Zusammenhang hab ich noch die 2. Frage: > > Was ist die empfohlene Vorgehensweise seitens Alaska für die Darstellung von Bildern auf farbigen drawingAreas, so wie > im gezeigten Quellcode? > Unter 1.9 verhält sich das ja komplett anders als unter 2.0. Das hängt dann auch noch vom Bildtyp ab, sogar bmps > können einen transparenten Hintergrund haben, das war mir neu. Mein Kenntnisstand war: Nur gif und png unterstützen > einen transparenten Hintergrund. > > Vielen Dank im Voraus. > > Werner > |
![]() | Werner Martl | Re: getDefaultBgColor() - Werte bei XbpBitmap() on Thu, 27 Nov 2014 22:35:19 +0100 Am 27.11.2014 16:38, schrieb Till Warweg: > Hallo Werner, > > zunächst einmal: ich kann nicht bestätigen, daß :GetDefaultBGColor() in > den beiden Versionen unterschiedliche Werte liefert. Ich erhalte sowohl > unter 1.9 als auch unter 2.0 den gleichen Wert (die Farbe Schwarz)? Sorry, mein Fehler, bei diesem png nicht, aber bei anderen. Siehe Anhang. > > Aber zum eigentlichen Problem: der in :TransparentClr eingestellte > Farbwert bewirkt eine Maskierung, bei der die angegebenen Bildbereiche > durch Hintergrundinformationen ersetzt werden. Dafür wird für jedes > Pixel einzeln der Farbwert berechnet. Ich glaube, genau hier entsteht > ein Problem, das dazu führt, daß die Transparenzinformationen in > Deiner Grafik verloren gehen. Man erkennt das daran, daß die > angezeigten Bilder unter 1.9 und 2.0 eigentlich identisch sind, sich > aber in der Helligkeit in Teilbereichen unterscheiden. Wir werden > das mit einem der nächsten Updates korrigieren, sodass Dein Code > bleiben kann, wie er ist - und zudem bessere Ergebnisse produziert > als unter 1.9. Super, danke! > > Die XbpBitmap-Klasse in 2.0-Version unterstützt Transparenzinforma- > tionen in PNGs, BMPs und GIFs. Die Anbindung an die verschiedenen > Xbase Part-Klassen ist allerdings noch nicht komplett, sodaß der > Ansatz über Maskierung + :TransparentClr weiterhin verwendet muß. > In Build 560 sollte die XbpStatic-Klasse allerdings Deine Grafik auch > schon ohne :TransparentClr richtig anzeigen! Korrekt, so ist es! > > Die anderen Parts folgen schnellstmöglich! Ich hoffe, dies beantwortet > Deine Fragen. > Yep, danke. ![]() |