Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Pixel in schwarz oder weiß unter FMX (https://www.delphipraxis.net/198315-pixel-schwarz-oder-weiss-unter-fmx.html)

bernhard_LA 24. Okt 2018 06:24

Pixel in schwarz oder weiß unter FMX
 
ich möchte schwarze und weiße Pixel in eine BMP unter Firemonkey zeichnen,
leider enzsteht bei mit nur ein grau /weißes Bild warum ?

(unter VCL war das Bild mit der analogen Variante / scanline dann schwarz und weiß)





Delphi-Quellcode:
var
    x, y : Integer;
    bitdata : TBitmapData;
    Color : TAlphaColor;

    begin

    if ( aBMP.Map( TMapAccess.maReadWrite, bitdata ) )
    then
      try

        for y := 0 to aBMP.Height - 1 do
          begin
            for x := 0 to aBMP.Width - 1 do
              begin

                if ( not GetPixelfromArray( x, y ) )
                then
                  begin
                    TAlphaColorRec( Color ).R := 255;
                    TAlphaColorRec( Color ).G := 255;
                    TAlphaColorRec( Color ).B := 255;


                  end
                else
                  begin
                    TAlphaColorRec( Color ).R := 0;
                    TAlphaColorRec( Color ).G := 0;
                    TAlphaColorRec( Color ).B := 0;
                  end;

                 bitdata.SetPixel( x, y, Color );

              end;

          end;

Rollo62 24. Okt 2018 06:46

AW: Pixel in schwarz oder weiß unter FMX
 
Hast du auch sichergestellt das Alpha voll aufgedreht ist ?

Delphi-Quellcode:
TAlphaColorRec( Color ).A := 255;

Ansonsten was spricht gegen
Delphi-Quellcode:
Color := TAlphaColorRec.Black;
Color := TAlphaColorRec.White;

Rollo

bernhard_LA 24. Okt 2018 08:32

AW: Pixel in schwarz oder weiß unter FMX
 
was bedeutet Alpha voll aufgedreht ?

Sherlock 24. Okt 2018 08:42

AW: Pixel in schwarz oder weiß unter FMX
 
Zitat:

Zitat von bernhard_LA (Beitrag 1416476)
was bedeutet Alpha voll aufgedreht ?

Das
Zitat:

Zitat von Rollo62 (Beitrag 1416449)
Delphi-Quellcode:
TAlphaColorRec( Color ).A := 255;

Sherlock

bytecook 24. Okt 2018 09:12

AW: Pixel in schwarz oder weiß unter FMX
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von bernhard_LA (Beitrag 1416476)
was bedeutet Alpha voll aufgedreht ?


Wert a := 0 bedeutet vollkommen transparent.
Wert a := 255 bedeutet vollkommen sichtbar.
Wert a := 128 bedeutet halbtransparent.

in meinem Beispielbild siehst du rechts eine Slider-Komponente, die sich mit halber Transparenz über die Oberfläche legt. Die Icon Komponenten, die auf dem Slider liegen, haben
den Alpha Wert 255. Der linke Slider hat den Alpha Wert auf 255 gesetzt. Ist zwar alles Vcl (Gui auf Basis von Gr32), aber FMX ist ähnlich strukturiert...

http://oi66.tinypic.com/2rnzud0.jpg

Harry Stahl 24. Okt 2018 17:48

AW: Pixel in schwarz oder weiß unter FMX
 
Wie gibst Du das Bitmap aus, evtl. per canvas.drawbitmap?

Wenn die Pixelabstände der weißen und schwarzen Pixel nah beieinander sind, dann könnte die standardmäßig eingeschaltete Pixelglättung zuschlagen und ein Grau daraus werden. Setze mal bei Canvas.drawbitmap the Wert für Highspeed auf true, gehts dann?

Wenn es das nicht war, poste doch mal ein lauffähiges Beispiel, weil wir sonst nur bei Vermutungen bleiben können.

Harry Stahl 27. Okt 2018 14:47

AW: Pixel in schwarz oder weiß unter FMX
 
Hat sich das Problem erledigt?

Ich fände es sehr nützlich, wenn man am Ende erfährt, ob das Problem mit der einen oder anderen Antwort erledigt wurde, natürlich auch unter dem Gesichtspunkt, dass so andere Anwender, die mal das gleiche Problem haben, dann mit dem Thread auch eine Hilfestellung haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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