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