主要思路
- 使用GDAL库实现图像类型转换功能
- 读取原始图像的数据,返回图像的宽、高、通道数量
- 创建内存驱动器,将原始图像的数据写入到内存驱动器中
- 使用CreateCopy接口,将内存驱动器的数据生成要求的jpg或者png图像
- 读取和写入的时候,都是按通道从0 0位置开始一次性读取图像宽和高数量的像素。
- 按照源图像的通道数量作为间隔拷贝原始数据到内存驱动器中。
参考网址
https://www.cnblogs.com/xiangism/p/5311314.html
https://blog.youkuaiyun.com/godenlove007/article/details/8864763
读取图像原始数据
bool ReadImageData( unsigned char **pImageData,int &nWidth,int &nHeight,int &nChannels,const QString& strFilePath )
{
GDALAllRegister();
GDALDataset *poDataset = NULL;
CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");
poDataset=(GDALDataset*) GDALOpen(strFilePath.toLocal8Bit(),GA_ReadOnly);
if(poDataset == N