FreeImage加速保存图像

http://www.cppblog.com/gaimor/archive/2010/07/21/120984.html
FreeImage图形库函数一个
一直以来使用FreeImage保存图像总是采用下面的办法:

FIBITMAP *  bitmap  = FreeImage_Allocate(width,height, 24 );    
const  unsigned  char *  source  =  data;
    
for ( int  y = 0 ; y  <  height; y ++  )
    {
        unsigned 
char *  scanline  =  (unsigned  char * )FreeImage_GetScanLine(bitmap, height  -  y  -   1  );     
        memcpy(scanline,data,
sizeof (source[ 0 ])  *  width);
        data 
+=  width;
    }
FreeImage_Save(FIF_BMP,bitmap,file, 0 )
不过今天看到了函数:
FreeImage_ConvertFromRawBits
使用它可以更加快速的保存图形
如下:
FIBITMAP *  bitmap  =  FreeImage_ConvertFromRawBits(data,width,height,pitch, 24 ,FI_RGBA_BLUE_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_RED_MASK,FALSE); 
    
然后调用FreeImageSave即可

另外关于获取FreeImage图形到数组
也有2个办法
一个是逐行复制
一个是使用memcpy(data,FreeImage.GetDibBits())
当然也可以逐像素复制咯
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值