Rozklad BMP obrázku na barevné složky RGB

Klíčová slova: BMPToRedChanel, BMPToBlueChanel, BMPToGreenChanel, TImage
Rubrika: Delphi

Následující tři funkce BMPToRedChanel, BMPToBlueChanel, BMPToGreenChanel vám provedou rozklad na jednotlivé barevné složky BMP obrázku. Jako vstupní parametr funkce je předán odkaz aImage na komponentu typu TImage. Na této komponentě proběhne načtení příslušného pixelu z Canvasu. Po úpravě (převod jediné barevné složky a odfiltrování ostatních složek) jej opět zapíšeme na stejné místo. Obrázek je po každém zhotoveném sloupci znovu překreslen pro viditelnost průběhu konverze.

 

// funkce pro zobrazeni red slozky
function BMPToRedChanel(aImage : TImage) : boolean;
var
x,y: integer;
c: TColor;
begin
Result := False;
try
for x := 0 to aImage.Picture.Bitmap.Width do
begin
for y := 0 to aImage.Picture.Bitmap.Height do
begin
c := aImage.Canvas.Pixels[x,y];
aImage.Canvas.Pixels[x,y] := (c and $0000FF);
end;
aImage.Repaint; // obnovení obrázku (překreslen sloupec)
end;
Result := True;
except
raise;
end;
end;

// funkce pro zobrazeni blue slozky
function BMPToBlueChanel(aImage : TImage) : boolean;
var
x,y: integer;
c: TColor;
begin
Result := False;
try
for x := 0 to aImage.Picture.Bitmap.Width do
begin
for y := 0 to aImage.Picture.Bitmap.Height do
begin
c := aImage.Canvas.Pixels[x,y];
aImage.Canvas.Pixels[x,y] := ((c and $FF0000));
end;
aImage.Repaint; // obnovení obrázku (překreslen sloupec)
end;
Result := True;
except
raise;
end;
end;

// funkce pro zobrazeni green slozky
function BMPToGreenChanel(aImage : TImage) : boolean;
var
x,y: integer;
c: TColor;
begin
Result := False;
try
for x := 0 to aImage.Picture.Bitmap.Width do
begin
for y := 0 to aImage.Picture.Bitmap.Height do
begin
c := aImage.Canvas.Pixels[x,y];
aImage.Canvas.Pixels[x,y] := ((c and $00FF00));
end;
aImage.Repaint; // obnovení obrázku (překreslen sloupec)
end;
Result := True;
except
raise;
end;
end;

Zdroj: Aleš Kresta Hrajeme si v Delphi s grafikou (1.)
 
Autor: Jiří Provazník
Datum vydání: 08.01.2003 | Zobrazeno: 3137
Permanentní odkaz: Rozklad BMP obrázku na barevné složky RGB

Komentáře (0)
Přidej vlastní komentář:
Následující (běžně neviditelná) pole slouží pro vnitřní identifikaci systému. Pokud je vyplníte nebude možné váš požadavek na straně serveru zpracovat:
URL:
contents:
Website:
Pro odeslání vašeho komentáře použijte tlačítko "Odeslat". Toto tlačítko nepoužívejte:

Následující položky je vhodné vyplnit:
Jméno :
Email :
Web :
Místo :
Hodnocení:
Hodnocení jako pomocí hvězdiček
1/5= nejhorší, 5/5=nejlepší