利用FreeImage生成新的影像的方法,有以下几种
1、直接克隆 FreeImage_Clone
2、利用FreeImage_Allocate
其中,利用第二种方法,所产生的影像看起来为黑色的
当时我怀疑数据是否写入,当使用MATLAB查看数据时发现,原来是其颜色表为空
因此调用FreeImage_Save()获得的影像为黑色,我想,如果利用克隆的话,访问其成员像素灰度后更改,可以保留其灰度查找表,但是要求目标影像和原始影像大小一致
故需自己生成灰度表
//返回指向位图调色板的指针,若为空,返回NULL
RGBQUAD *pRgb = FreeImage_GetPalette( tiff);
//返回调色板的大小,多色位图返回0
unsigned int count = FreeImage_GetColorsUsed( tiff);
for (unsigned int i = 0; i < count; i++)
{
pRgb[i].rgbRed = i;
pRgb[i].rgbGreen = i;
pRgb[i].rgbBlue = i;
}
阅读(1390) | 评论(0) | 转发(0) |