Методическое пособие по курсу "Интерактивные графические системы". Найханов В.В - 60 стр.

UptoLike

Приложение 4
Процедуры получения и установки цвета пиксела на изображении в Delphi.
type TRGB = record
Red,Blue,Green : integer;
end;
const MaxColor=255;
var SvP : TRGB;
procedure GetPixelRGB(AnyRis:TImage;x,y:integer;var GetRBG:TRGB);
var SvP,W1,W2 : integer;
begin
SvP:=AnyRis.Canvas.Pixels[x,y];
W1:=SvP shr 16;
W2:=SvP - (W1*$10000);
GetRBG.Blue:=Lo(W1); // Blue
GetRBG.Green:=Hi(W2); // Green
GetRBG.Red:=Lo(W2); // Red
end;
procedure SetPixelRBG(AnyRis : TImage;x,y:integer;SetRGB:TRGB);
begin
if SetRGB.Blue<0 THEN SetRGB.Blue:=0;
if SetRGB.Blue>MaxColor THEN SetRGB.Blue:=MaxColor;
if SetRGB.Green<0 THEN SetRGB.Green:=0;
if SetRGB.Green>MaxColor THEN SetRGB.Green:=MaxColor;
if SetRGB.Red<0 THEN SetRGB.Red:=0;
if SetRGB.Red>MaxColor THEN SetRGB.Red:=MaxColor;
AnyRis.Canvas.Pixels[x,y]:=
SetRGB.Blue*$10000+SetRGB.Green*$100+SetRGB.Red;
end;
Инициализация графического режима с поддержкой 256 цветов в
Borland Pascal.
Gd:=InstallUserDriver('SVGA256',nil);
InitGraph(GD,Gr,'C:\BP\BGI');
i:=GraphResult;
if i <> 0 then begin WriteLn('Графика не инециализировалась : ',i); Halt; end;
Установка палитры градаций серого цвета в Borland Pascal.
for i:=0 to 255 do
SetRGBPalette(i,i div 4,i div 4,i div 4);
                                                                  Приложение 4

Процедуры получения и установки цвета пиксела на изображении в Delphi.

type TRGB = record
        Red,Blue,Green : integer;
      end;
const MaxColor=255;
var SvP : TRGB;

procedure GetPixelRGB(AnyRis:TImage;x,y:integer;var GetRBG:TRGB);
var SvP,W1,W2 : integer;
begin
  SvP:=AnyRis.Canvas.Pixels[x,y];
  W1:=SvP shr 16;
  W2:=SvP - (W1*$10000);
  GetRBG.Blue:=Lo(W1); // Blue
  GetRBG.Green:=Hi(W2); // Green
  GetRBG.Red:=Lo(W2); // Red
end;

procedure SetPixelRBG(AnyRis : TImage;x,y:integer;SetRGB:TRGB);
begin
  if SetRGB.Blue<0 THEN SetRGB.Blue:=0;
  if SetRGB.Blue>MaxColor THEN SetRGB.Blue:=MaxColor;
  if SetRGB.Green<0 THEN SetRGB.Green:=0;
  if SetRGB.Green>MaxColor THEN SetRGB.Green:=MaxColor;
  if SetRGB.Red<0 THEN SetRGB.Red:=0;
  if SetRGB.Red>MaxColor THEN SetRGB.Red:=MaxColor;
  AnyRis.Canvas.Pixels[x,y]:=
SetRGB.Blue*$10000+SetRGB.Green*$100+SetRGB.Red;
end;

      Инициализация графического режима с поддержкой 256 цветов в
Borland Pascal.

Gd:=InstallUserDriver('SVGA256',nil);
InitGraph(GD,Gr,'C:\BP\BGI');
i:=GraphResult;
if i <> 0 then begin WriteLn('Графика не инециализировалась : ',i); Halt; end;


       Установка палитры градаций серого цвета в Borland Pascal.
for i:=0 to 255 do
 SetRGBPalette(i,i div 4,i div 4,i div 4);