2008. augusztus 27., szerda
How to change colours in a 16 colour bitmap
Problem/Question/Abstract:
How to change colors in a 16 colour bitmap
Answer:
I found the solution which works best, although the final version will have the colors computed rather than hard coded. The bitmap I am using actually only uses the first 4 colors in the palette for shades of grey.
procedure TForm1.SetWallpaperPalette;
type
RGBQUAD = packed record
rgbBlue: Byte;
rgbGreen: Byte;
rgbRed: Byte;
rgbReserved: Byte;
end;
var
NewColors: array[1..4] of RGBQUAD;
begin
FillChar(NewColors, SizeOf(NewColors), 0);
with NewColors[1] do
begin
rgbBlue := 0;
rgbGreen := $C6;
rgbRed := $C6;
end;
with NewColors[2] do
begin
rgbBlue := 0;
rgbGreen := $CE;
rgbRed := $CE;
end;
with NewColors[3] do
begin
rgbBlue := 0;
rgbGreen := $D6;
rgbRed := $D6;
end;
with NewColors[4] do
begin
rgbBlue := 0;
rgbGreen := $DE;
rgbRed := $DE;
end;
if Assigned(SpeedBar1.Wallpaper.Bitmap) then
SetDibColorTable(SpeedBar1.Wallpaper.Bitmap.Canvas.Handle, 0, 4, NewColors);
end;
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése