FreeImage加速保存图像

来源:互联网 发布:更新多字段sql语句 编辑:程序博客网 时间:2024/06/05 10:40
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
原创粉丝点击