procedure THaarWavelet.convert(Image:TBitmap;Data:PYIQTripleArray); var x,y:cardinal; pixelData:PYIQTripleArray; pointerRow:PRGBTripleArray; begin pixelData:=Data; for y:=0 to IMAGE_SIZE-1 do begin pointerRow:=Image.ScanLine[y]; for x:=0 to IMAGE_SIZE-1 do begin with pointerRow[x],pixelData[y,x] do begin // ** Coefficents from Wikipedia ** Y:=(0.299*rgbtRed + 0.587*rgbtGreen + 0.114*rgbtBlue)/256.0; I:=(0.595716*rgbtRed - 0.274453*rgbtGreen - 0.321263*rgbtBlue)/256.0; Q:=(0.211456*rgbtRed - 0.522591*rgbtGreen + 0.311135*rgbtBlue)/256.0; end; end; end;