超级猛料中的这段是怎么回事?(100分)

  • 主题发起人 主题发起人 jpyc
  • 开始时间 开始时间
J

jpyc

Unregistered / Unconfirmed
GUEST, unregistred user!
// Bitmap.ScanLine[X] 可以获取图像象素的内存地址,24Bits的Bitmap的每一象
// 素是以三原色RGB的次序存放的,改变RGB的值就可调节Bitmap的色彩.
// R, G, B: -255~255
procedure RGB(var Bmp: TBitmap; R, G, B: Integer);
var
X, Y: Integer;
I: Byte;
ColorTable: array[0..255] of TRGBColor;
pRGB: PRGBColor;
begin
for I := 0 to 255 do
begin
ColorTable.R := Byte(I + R);
ColorTable.G := Byte(I + G);
ColorTable.B := Byte(I + B);
end;

for Y := 0 to Bmp.Height - 1 do
begin
pRGB := Bmp.ScanLine[Y];
for X := 0 to Bmp.Width - 1 do
begin
pRGB.R := ColorTable[pRGB.R].R;
pRGB.G := ColorTable[pRGB.G].G;
pRGB.B := ColorTable[pRGB.B].B;
end;
Inc(pRGB);
end;
end;
///////////////////////
TRGBColor/PRGBColor,D6/D7中根本没有呀!
 
// R, G, B: -255~255
错,范围是在 0-255
TRGBColor需要自己定义一下,大概应该是如下:
PRGBColor = ^TRGBColor;
TRGBColor = packed record
B: byte;
G: byte;
R: byte;
end;
 
接受答案了.
 
谢谢pihome
 
后退
顶部