FreeImage 是一款免费的、开源的、跨平台(Windows 、Linux 和Mac OS X )的,支持20 多种图像类型的(如BMP 、JPEG 、GIF 、PNG 、TIFF 等)图像处理库。
安装及使用
环境:win7 VS2015
1. 下载FreeImage :
地址:https://sourceforge.net/projects/freeimage/files/Source%20Distribution/
在这里现在最新版本目前(2020.4.27)是3.18.0版本。
下载的FreeImage库中有VS2013 和VS2017两个项目工程,因为我使用的是VS2015,所以选择VS2017工程打开,并调整工程中所有项目平台工具集为Visual Studio 2015(V140),然后编译FreeImage项目生成dll库,文件FreeImaged.dll、FreeImaged.lib。(文件名后面的d代表debug意思,我项目为了调试开发期间都是debug版本,所以库也生成debug版本,你可以按照自己喜好改成release版)
2. opengl项目配置:
a. 项目属性 ----> C/C++ —> 附加包含目录 —> your_path\FreeImage\Source
b. 项目属性 ----> 链接器 —> 常规 —> 附加库目录 —> your_path\lib
c. 项目属性 ----> 链接器 —> 输入 —> 附加依赖项 —> FreeImaged.lib
3. 代码:
这里使用freeimage加载一张图片,获取宽高,调整颜色,并保存。
#include <iostream>
#include "FreeImage.h"
int main()
{
FreeImage_Initialise(TRUE);
//加载图片
FIBITMAP * JPEG = FreeImage_Load(FIF_JPEG, "../res/11.jpg", JPEG_DEFAULT);
//获取影像的宽高,都以像素为单位
int Width = FreeImage_GetWidth(JPEG);
int Height = FreeImage_GetHeight(JPEG);
std::cout << "Width: " << Width << "\nHeight: " << Height << std::endl;
//颜色调整
FreeImage_AdjustContrast(JPEG, 15.0);
FreeImage_AdjustBrightness(JPEG, 20.0);
//FreeImage_Invert(JPEG);
if (JPEG)
{
FreeImage_Save(FIF_BMP, JPEG, "../res/11test.bmp", BMP_DEFAULT);
}
FreeImage_Unload(JPEG);
FreeImage_DeInitialise();
system("pause");
return 0;
}
4.运行结果:
原图:
调整颜色后: