On Sat, 31 Dec 2005 01:05:09 +0100 (CET)
[EMAIL PROTECTED] wrote:

> 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;

Red, Green, Blue, Alpha are words (0-65536). Use 32768.


>       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;

Mattias

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

Reply via email to