GDAL创建 收集一些options

在使用GDAL创建TIFF文件时,可以为选项参数papszOptions提供以下选项:

  1. COMPRESS=<compression_type>:设置压缩类型,可选值包括NONE(不压缩,默认值)、JPEGLZWPACKBITSDEFLATECCITTRLECCITTFAX3CCITTFAX4CCITTRLEWPACKBITSWDEFLATEWLZMAZSTD

  2. PHOTOMETRIC=<photometric>:设置像素格式,可选值包括MINISBLACK(默认值,灰度图像)、MINISWHITERGBPALETTE(调色板索引图像)。

  3. TILED=YES/NO:指定是否以瓦片方式存储数据,默认值为NO。

  4. BLOCKXSIZE=<pixels>:指定每个瓦片的宽度(像素数),仅当TILED=YES时有效。

  5. BLOCKYSIZE=<pixels>:指定每个瓦片的高度(像素数),仅当TILED=YES时有效。

  6. BIGTIFF=YES/NO:指定是否使用BigTIFF格式,默认值为NO。BigTIFF支持超过4GB的文件大小限制。

  7. INTERLEAVE=<interleave>:设置波段存储的交错方式,可选值包括BAND(波段交错,默认值)、PIXEL(像素交错)、LINE(行交错)。

  8. COPY_SRC_OVERVIEWS=YES/NO:指定是否复制源数据集的概览到新创建的数据集,默认为NO。

  9. COPY_SRC_DOMAINS=YES/NO:指定是否复制源数据集的元数据域到新创建的数据集,默认为YES。

  10. 其他格式特定选项:不同的GDAL驱动程序支持不同的选项,可以查阅驱动程序的文档以获取更多特定于格式的选项。

这些选项可以作为papszOptions参数的键值对传递给GDAL的Create()方法或CreateCopy()方法,用于设置创建TIFF文件时的相关参数。

是否压缩

“COMPRESS”,“JPEG”or“LZW”
ps:tdom可以使用JPEG、LZW压缩,dsm仅能使用LZW压缩

压缩质量

“QUALITY”, “75”

是否是大tiff

“BIGTIFF”, “IF_NEEDED”

是否写出tfw

“TFW”, “YES”


	char** pszOptions = NULL;
	pszOptions = CSLSetNameValue(pszOptions, "BIGTIFF", "IF_NEEDED");
	if (m_SetDsm.bTfw)
		pszOptions = CSLSetNameValue(pszOptions, "TFW", "YES");
	std::string sCompress = m_SetDsm.sCompress.toLocal8Bit().toStdString();
	if (sCompress == "JPEG")
	{
		pszOptions = CSLSetNameValue(pszOptions, "COMPRESS", sCompress.c_str());
		pszOptions = CSLSetNameValue(pszOptions, "QUALITY", std::to_string(75).c_str());
		pszOptions = CSLSetNameValue(pszOptions, "TILED", "YES");
	}
	else if (sCompress == "LZW")
	{
		pszOptions = CSLSetNameValue(pszOptions, "COMPRESS", sCompress.c_str());
		pszOptions = CSLSetNameValue(pszOptions, "TILED", "YES");
	}
	GLenum pixelFmt = GL_RGB;
	int nRasterCount = pixelFmt == GL_RGB ? 3 : 4;
	GDALDriverH hDriver = GDALGetDriverByName("GTiff");
	GDALDataset* pDstDataset = (GDALDataset*)GDALCreate(hDriver, sOutputFilePath.toLocal8Bit().toStdString().c_str()\
		, nImgWidth, nImgHeight, nRasterCount, GDT_Byte, pszOptions);

设置最大波段数

设置最大波段数

 const char* pszMaxBandCount = CPLGetConfigOption("GDAL_MAX_BAND_COUNT", "65536");

避免中文乱码

避免中文乱码

	CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO"); 
	CPLSetConfigOption("SHAPE_ENCODING", "");
	CPLSetConfigOption("FILEGDB_ENCODING", "CP936");

设置prj4库全路径

设置proj全路径

	std::string strPrjLibFullPath = (_T("C:\\projd.dll"));
	CPLSetConfigOption("PROJSO",strPrjLibFullPath.c_str());
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值