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())
當然也可以逐像素複制咯