You are on page 1of 3

unit unt_SD;

interface
type
Matriks = array of array of integer;
function CitraBiner_ke_Matriks(CitraBiner:TBitmap):Matriks;
function Matriks_ke_CitraBiner(M:Matriks):TBitmap;
function CitraGrey_ke_Matriks(CitraGrey:TBitmap):Matriks;
function Matriks_ke_CitraGrey(M:Matriks):TBitmap;
function CitraRGB_ke_MatriksR(CitraRGB:TBitmap):Matriks;
function CitraRGB_ke_MatriksG(CitraRGB:TBitmap):Matriks;
function CitraRGB_ke_MatriksB(CitraRGB:TBitmap):Matriks;
function Matriks_ke_CitraRGB(MR,MG,MB:Matriks):TBitmap;
implementation
{$R *.dfm}
function CitraBiner_ke_Matriks(CitraBiner:TBitmap):Matriks;
begin
end;
function Matriks_ke_CitraBiner(M:Matriks):TBitmap;
begin
end;
function CitraGrey_ke_Matriks(CitraGrey:TBitmap):Matriks;
var
i,j : integer;
M : Matriks;
begin
SetLength(M,CitraGrey.Width,CitraGrey.Height);
for i := 0 to CitraGrey.Width-1 do
begin
for j := 0 to CitraGrey.Height-1 do
begin
M[i,j]:= Byte(CitraGrey.Canvas.Pixels[i,j]);
end;
end;
CitraGrey_ke_Matriks:=M;
end;
function Matriks_ke_CitraGrey(M:Matriks):TBitmap;
var
i,j : integer;
CitraGrey : TBitmap;
begin
CitraGrey := TBitmap.create;
CitraGrey.PixelFormat := pf8bit;
CitraGrey.height := length(M[0]);
CitraGrey.width := length(M);
for i := 0 to CitraGrey.width-1 do
begin
for j := 0 to CitraGrey.height-1 do
begin
CitraGrey.canvas.pixels[i,j]:=RGB(M[i,j],M[i,j],M[i,j]);
end;
end;
Matriks_ke_CitraGrey := CitraGrey;
end;
function CitraRGB_ke_MatriksR(CitraRGB:TBitmap):Matriks;
var
i,j : integer;
M : Matriks;
begin
SetLength(M,CitraRGB.Width,CitraRGB.Height);
for i := 0 to CitraRGB.Width-1 do
begin
for j := 0 to CitraRGB.Height-1 do
begin
M[i,j]:= GetRValue(CitraRGB.Canvas.Pixels[i,j]);
end;
end;
CitraRGB_ke_MatriksR:=M;
end;
function CitraRGB_ke_MatriksG(CitraRGB:TBitmap):Matriks;
var
i,j : integer;
M : Matriks;
begin
SetLength(M,CitraRGB.Width,CitraRGB.Height);
for i := 0 to CitraRGB.Width-1 do
begin
for j := 0 to CitraRGB.Height-1 do
begin
M[i,j]:= GetGValue(CitraRGB.Canvas.Pixels[i,j]);
end;
end;
CitraRGB_ke_MatriksG:=M;
end;
function CitraRGB_ke_MatriksB(CitraRGB:TBitmap):Matriks;
var
i,j : integer;
M : Matriks;
begin
SetLength(M,CitraRGB.Width,CitraRGB.Height);
for i := 0 to CitraRGB.Width-1 do
begin
for j := 0 to CitraRGB.Height-1 do
begin
M[i,j]:= GetBValue(CitraRGB.Canvas.Pixels[i,j]);
end;
end;
CitraRGB_ke_MatriksB:=M;
end;
function Matriks_ke_CitraRGB(MR,MG,MB:Matriks):TBitmap;
var
i,j : integer;
CitraRGB : TBitmap;
begin
CitraRGB := TBitmap.create;
CitraRGB.PixelFormat := pf8bit;
CitraRGB.height := length(M[0]);
CitraRGB.width := length(M);
for i := 0 to CitraRGB.width-1 do
begin
for j := 0 to CitraRGB.height-1 do
begin
CitraRGB.canvas.pixels[i,j]:=RGB(MR[i,j],MG[i,j],MB[i,j]
);
end;
end;
Matriks_ke_CitraRGB := CitraRGB;
end;
end.

You might also like