精简上面函数

精简下面函数
for i:= 0 to 255 do
      begin
        lplogpal.palPalEntry[i].peRed :=i;
        lplogpal.palPalEntry[i].peGreen :=i;
        lplogpal.palPalEntry[i].peBlue :=i;
        histogram[i] := 0;
      end;
    bitmap.Palette := CreatePalette(pLogPalette(lpLogPal)^);
    FreeMem(lpLogPal,sizeof(TLOGPALETTE) + ((255) * sizeof(TPALETTEENTRY)));
    for i := 0 to (bitmapSrc.Height -1)  do   
      begin
        ppSrc := bitmapSrc.ScanLine[i];
        ppDest := bitmap.ScanLine[i];
        j:=0;
        while j <= (bitmapSrc.Width - 1) do
          begin
            ppDest[j] := trunc(ppSrc[j*PixelNum]*0.114 + ppSrc[j*pixelNum + 1]*0.587
                               + ppSrc[j*PixelNum + 2]*0.299+0.5);
            Inc(j);
          end;
//        bitmapSrc.Assign(bitmap);
//        ptr:=bitmap.ScanLine[i];
//        for n := 0 to (bitmap.Width-1) do
//            begin
//              histogram[ptr[n]]:= histogram[ptr[n]]+1 ;
//            end;
      end;
    bitmapSrc.Assign(bitmap);

    try
      for m:= 0 to (bitmap.Height-1) do
        begin
          ptr:=bitmap.ScanLine[m];

          for n := 0 to (bitmap.Width-1) do
            begin
              histogram[ptr[n]]:= histogram[ptr[n]]+1 ;
            end;
        end;
    except

    end;

想精简下 变成一个循环 但是想不明白

------解决方案--------------------
好像没有太多优化的空间,看下下面的优化会不会影响你的功能。


for i:= 0 to 255 do
      begin
        lplogpal.palPalEntry[i].peRed :=i;
        lplogpal.palPalEntry[i].peGreen :=i;