Dette skulle være noget hurtigere end de tidligere (og er, ligesom den
første, RGB korrigeret, dvs ikke bare (Rød+Grøn+Blå) div 3)
Hilsen Michael Hansen.
procedure TForm1.ConvertImage(bitmap: TBitmap);
type
TRGBTripleArray = array [0..32767] of TRGBTriple;
PRGBTripleArray = ^TRGBTripleArray;
var
PBitmap : array of PRGBTripleArray; {Pointere til bitmapbilledet}
SH, x,y,xmax,ymax : integer;
begin
xmax:=bitmap.width-1;
ymax:=bitmap.height-1;
SetLength(PBitmap,ymax);
for y:=0 to ymax do
begin
PBitmap[y]:=Bitmap.Scanline[y]; {adresserer pointer´ne til
bitmapindholdet}
for x:=0 to xmax do
begin
sh:=Round(
(0.30 * PBitmap[y,x].rgbtRed)+
(0.59 * PBitmap[y,x].rgbtGreen)+
(0.11 * PBitmap[y,x].rgbtBlue) );
PBitmap[y,x].rgbtRed:=sh;
PBitmap[y,x].rgbtGreen:=sh;
PBitmap[y,x].rgbtBlue:=sh;
end;
end;
end;
"anger" <anger@kurt.com> wrote in message
news:UVu26.24924$9t1.278751@twister.sunsite.dk...
> Hej,
>
> Er der nogen som ved hvordan man konvertere RGB til gråtoner?
>
> / Anger
>