Hi,

The following function does not work. It seems that the image is not
affected at all, although all color channels are set to 128. I would
expect to get a uniformly gray image, the size of the initial bitmap. What
am I missing here?

function ConvertBitmap(ABitmap: TBitmap): TBitmap;
var
  TempIntfImg: TLazIntfImage;
  ImgHandle,ImgMaskHandle: HBitmap;
  x, y: Integer;
begin
  TempIntfImg:=TLazIntfImage.Create(0,0);
  TempIntfImg.LoadFromBitmap(ABitmap.Handle,ABitmap.MaskHandle);

  Result:=TBitmap.Create;

  //change all pixels to gray
  for y:=0 to Pred(TempIntfImg.Height) do
    for x:=0 to Pred(TempIntfImg.Width) do
    begin
      TempIntfImg.Colors[x, y].Red:=128;
      TempIntfImg.Colors[x, y].Green:=128;
      TempIntfImg.Colors[x, y].Blue:=128;
    end;

  TempIntfImg.CreateBitmap(ImgHandle,ImgMaskHandle,false);

  Result.Handle:=ImgHandle;
  Result.MaskHandle:=ImgMaskHandle;

  TempIntfImg.Free;
end;

Darius

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to