27. august 2000 - 14:06Der er
9 kommentarer og 3 løsninger
farve ændring på pixel
Jeg har hentet farven ind fra en/et pixel ved hjælp af image1.Canvas.Pixels[x, y]; jeg har så farven som en TColor. Og her er så ?\'et, hvordan deler jeg farven ud i 3, altså : 1 R 1 G 1 B
Det er ikke så svært en TColor er en 4 byte værdi, og du skal \"bare\" læse/skrive de enkelte bytes. Her har du 2 funktioner du kan bruge:
Procedure GetRGBValue(rgbColor : TColor; Var uiRed, uiGreen, uiBlue : Byte); begin uiBlue := rgbColor and $FF; rgbColor := rgbColor shr 8; uiGreen := rgbColor and $FF; rgbColor := rgbColor shr 8; uiRed := rgbColor and $FF; end;
Function SetRGBValue(uiRed, uiGreen, uiBlue : Byte) : TColor; begin Result := $00; // Flag Result := Result shl 8; Result := Result or uiRed; Result := Result shr 8; Result := Result or uiGreen; Result := Result shr 8; Result := Result or uiBlue; end;
Hvis f.eks. at du som i dit eksempel har brugt de forud-definerede farver (clAqua osv..) kan den ikke lave dem om til RGB hvis du ikke bruger ColorToRGB først.
så geek>>
Brug ColorToRGB, den er ikke altid nødvendig, men det er den nogle gange. Så for en sikkerheds skyld. Brug den :))
Munter = Munder ;> (Den er sgu svær at tale sig fra - der er ellere ret langt fra D til T på mit tastatur..)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.