Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Integer in Farbwerte zerlegen und dann jeweils auslesen (https://www.delphipraxis.net/172462-integer-farbwerte-zerlegen-und-dann-jeweils-auslesen.html)

EMS 5. Jan 2013 14:43

AW: Integer in Farbwerte zerlegen und dann jeweils auslesen
 
bei
v:=(s and $FF000000) shr 32;

hier sollte v doch dann der wert aus S sein mit diesem Filter.

S lasse ich mir vorheranzeigen da steht dann der Wert drinne der im Button 2 aus R+G+B+Versteckte_Zahl heraus kommt drinne

stimmt das mit dem einen Wert habe ich gerade gesehen.
Aber wie stelle ich das an das ich jetzt das Pixel und seine 4 Bytes zerlegen kann und dann diese Werte dann einzenld speichern kann?
Auslesen bekomme ich ja hin aber am speichern scheitert es gerade

Bummi 5. Jan 2013 18:04

AW: Integer in Farbwerte zerlegen und dann jeweils auslesen
 
zum nachvollziehen ...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 C:TColor;
 ByteArray:Array[0..3] of byte absolute C;
 ACharArray:Array[0..3] of AnsiChar absolute C;

 StringAusCharacters,StringAusBytes:String;
 i:Integer;
begin
   C := RGB(65,66,67);
   Memo1.Lines.Add('Zahlendarstellung der Bytes:');
   for i := 0 to 3 do Memo1.Lines.Add(IntToStr(ByteArray[i]));
   Memo1.Lines.Add('Umformungen');
   for i := 0 to 3 do
      begin
        StringAusCharacters := StringAusCharacters + ACharArray[i];
        StringAusBytes := StringAusBytes + Char(ByteArray[i]);
        Memo1.Lines.Add(IntToStr(ORD(ACharArray[i])) +'='+ IntToStr(ByteArray[i]) +' - ' +  ACharArray[i] + '=' + Char(ByteArray[i]));
      end;
   Memo1.Lines.Add('String aus Charakters');
   Memo1.Lines.Add(StringAusCharacters);
   Memo1.Lines.Add('String aus Bytes');
   Memo1.Lines.Add(StringAusBytes);

   for i := 0 to 3 do ACharArray[i] := #0;
   ACharArray[0] := Char(255);
   Memo1.Lines.Add(ColorToString(c));


   for i := 0 to 3 do ByteArray[i] := 0;
   ByteArray[1] := 255;
   Memo1.Lines.Add(ColorToString(c));

   Memo1.Lines.Add('Setzen auf clBlue');
   c := clBlue;
   for i := 0 to 3 do
        Memo1.Lines.Add(IntToStr(ByteArray[i]));
   Memo1.Lines.Add('1* shr 8');
   c := c shr 8;
   for i := 0 to 3 do
        Memo1.Lines.Add(IntToStr(ByteArray[i]));
   Memo1.Lines.Add('1* shr 8');
   c := c shr 8;
   for i := 0 to 3 do
        Memo1.Lines.Add(IntToStr(ByteArray[i]));


end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz