lazarus下的32位Bitmap转24位

        Delphi下,简单把PixelFormat设为pf24bit就可以了,但在lazarus下则不行。谷歌了很多关键字,没有想要的答案,但也可以找到线索,通过LazIntfImage进行转换。

Procedure Bmp32ToBmp24(src: TBitmap;dest:TBitmap);  
var
  inf1,inf2:TLazIntfImage;
  ImgFormatDescription: TRawImageDescription;
begin
 inf2:=TLazIntfImage.Create(src.Width,src.Height);
 inf1:= src.CreateIntfImage;
 try
 ImgFormatDescription.Init_BPP24_B8G8R8_BIO_TTB(src.Width,src.Height);
 inf2.DataDescription:=ImgFormatDescription;
 inf2.CopyPixels(inf1);
 dest.PixelFormat:=pf24bit;
 dest.LoadFromIntfImage(inf2);
 finally
   inf1.free;
   inf2.Free;
 end;
end;


原创博客:http://blog.csdn.net/rocklee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值