C++之對FreeImage的簡單使用

FreeImage的簡單使用

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<array>
#include<string>
#include <vector>
#include <ctime>
using namespace  std;
#include "FreeImage.h"
#pragma comment(lib,"FreeImage.lib")


/*
int FreeImageMain::GetImagePathSuffix(QString path) const
{
//    QString::compare(path.split(".").constLast(), "BMP", Qt::CaseInsensitive);
QString Suffix = path.split(".").constLast().toUpper();
if(Suffix == "BMP")
{
return FIF_BMP;
}
else if (Suffix == "ICO")
{
return FIF_ICO;
}
else if (Suffix == "JPEG")
{
return FIF_JPEG;
}
else if (Suffix == "JNG")
{
return FIF_JNG;
}
else if (Suffix == "KOALA")
{
return FIF_KOALA;
}
else if (Suffix == "LBM")
{
return FIF_LBM;
}
else if (Suffix == "IFF")
{
return FIF_IFF;
}
else if (Suffix == "MNG")
{
return FIF_MNG;
}
else if (Suffix == "PBM")
{
return FIF_PBM;
}
else if (Suffix == "PBMRAW")
{
return FIF_PBMRAW;
}
else if (Suffix == "PCD")
{
return FIF_PCD;
}
else if (Suffix == "PCX")
{
return FIF_PCX;
}
else if (Suffix == "PGM")
{
return FIF_PGM;
}
else if (Suffix == "PGMRAW")
{
return FIF_PGMRAW;
}
else if (Suffix == "PNG")
{
return FIF_PNG;
}
else if (Suffix == "PPM")
{
return FIF_LBM;
}
else if (Suffix == "PPMRAW")
{
return FIF_PPMRAW;
}
else if (Suffix == "RAS")
{
return FIF_RAS;
}
else if (Suffix == "TARGA")
{
return FIF_TARGA;
}
else if (Suffix == "TIFF")
{
return FIF_TIFF;
}
else if (Suffix == "WBMP")
{
return FIF_WBMP;
}
else if (Suffix == "PSD")
{
return FIF_PSD;
}
else if (Suffix == "CUT")
{
return FIF_CUT;
}
else if (Suffix == "XBM")
{
return FIF_XBM;
}
else if (Suffix == "XPM")
{
return FIF_XPM;
}
else if (Suffix == "DDS")
{
return FIF_DDS;
}
else if (Suffix == "GIF")
{
return FIF_GIF;
}
else if (Suffix == "HDR")
{
return FIF_HDR;
}
else if (Suffix == "FAXG3")
{
return FIF_FAXG3;
}
else if (Suffix == "SGI")
{
return FIF_SGI;
}
else if (Suffix == "EXR")
{
return FIF_EXR;
}
else if (Suffix == "J2K")
{
return FIF_J2K;
}
else if (Suffix == "JP2")
{
return FIF_JP2;
}
else if (Suffix == "PFM")
{
return FIF_PFM;
}
else if (Suffix == "PICT")
{
return FIF_PICT;
}
else if (Suffix == "RAW")
{
return FIF_RAW;
}
else if (Suffix == "WEBP")
{
return FIF_WEBP;
}
else if (Suffix == "JXR")
{
return FIF_JXR;
}
return FIF_UNKNOWN;

}





*/
void main()
{
	
	//1.初始化
	FreeImage_Initialise(TRUE);

	
	FIBITMAP * JPEG = FreeImage_Load(FIF_JPEG, "C:\\Users\\Microsoft\\Desktop\\IMG_0011.JPG", JPEG_DEFAULT);
	
	//獲取影像的寬高,都以像素爲單位
	int Width = FreeImage_GetWidth(JPEG);
	int Height = FreeImage_GetHeight(JPEG);
	std::cout << "Width: " << Width << "\nHeight: " << Height << std::endl;

	//旋轉
	FIBITMAP *JPEG1 = FreeImage_RotateEx(JPEG,90 , 0, 0, Width/2, Height/2, TRUE);

	//另存爲,在這裏保存爲jp2,FIF
	if (FreeImage_Save(FIF_JP2, JPEG1, "C:\\Users\\Microsoft\\Desktop\\ty9.jp2"))
	{
		cout << "轉換成功\n";
	}
	else
	{
		cout << "轉換失敗\n";
	}

	
	FreeImage_Unload(JPEG);
	FreeImage_Unload(JPEG1);
	FreeImage_DeInitialise();

	system("pause");
}

結果:
在這裏插入圖片描述
在這裏插入圖片描述
下載FreeImage庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章