lazarus下的32位Bitmap转24位

来源:互联网 发布:js下拉菜单视频教程 编辑:程序博客网 时间:2024/06/01 09:09

        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

0 0
原创粉丝点击