Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183309
  • 博文数量: 38
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-05 19:39
文章分类

全部博文(38)

文章存档

2011年(1)

2010年(2)

2009年(2)

2008年(33)

我的朋友

分类: C/C++

2008-06-19 01:00:23

利用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) |
给主人留下些什么吧!~~