You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gdal_translate将16位TIFF转JPEG时如何保留16位深度?

问题解答

首先明确:JPEG格式本身不支持16位位深度,这是格式标准的限制,不是GDAL的问题。所以不管怎么调整参数,转成JPEG都没法保留16位信息,和你输入的TIFF位深度无关——哪怕你用更高位的TIFF,转JPEG照样会降到8位。

再看你当前的参数,这里还有两个主动触发降位的设置:

  • -ot Byte:直接指定输出数据类型为8位字节(Byte),强制把16位数据转成8位
  • scale = "0-65535":这个参数会把原始16位的0-65535范围缩放到目标类型的取值范围(因为搭配了-ot Byte,所以是0-255),进一步完成降位转换

如果需要保留16位数据,你得换用支持16位的图像格式,推荐这几种:

  • PNG:支持16位灰度图像,GDAL直接兼容
  • TIFF:继续沿用TIFF格式,完全保留原始位深度
  • JPEG 2000(JP2):JPEG的升级版,支持16位压缩,GDAL也支持

举个转16位PNG的参数示例:

options_list = [
    '-ot UInt16',  # 指定输出为16位无符号整数
    '-of PNG',     # 输出格式改为PNG
    '-b 1',
    '-co ZLEVEL=9' # PNG压缩级别,数值越高文件越小、质量损失越低
]

如果非要用JPEG类的压缩格式,就转JP2,参数示例:

options_list = [
    '-ot UInt16',
    '-of JP2OpenJPEG',  # 指定JP2格式
    '-b 1',
    '-co QUALITY=100'
]

内容的提问来源于stack exchange,提问作者Exavier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:20:25