Inverze BMP obrázku

Klíčová slova:
Rubrika: Delphi

Následující funkce InvertBMP provedou převod barevné složky BMP obrázku na inverzní barvy. 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.

 

function InvertBMP(aImage : TImage) : boolean;
var
x,y: integer;
c: TColor;
r,g,b : byte;
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];
r := (c and $0000FF);
g := (c and $00FF00) shr 8;
b := (c and $FF0000) shr 16;
r := 255-r;
g := 255-g;
b := 255-b;
aImage.Canvas.Pixels[x,y] := r + (g shl 8) + (b shl 16) ;
end;
aImage.Repaint;
end;
Result := True;
except
raise;
end;
end;

Zdroj: Aleš Kresta Hrajeme si v Delphi s grafikou (2.)
 
Autor: Jiří Provazník
Datum vydání: 08.01.2003 | Zobrazeno: 7944
Permanentní odkaz: Inverze BMP obrázku

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ší