python TIF转PNG的两种方式

文章介绍了两种将TIFF图像转换为PNG格式的方法,一种使用gdal库,另一种结合libtiff和cv2库。还讨论了插值方法在图像resize中的应用,如INTER_NEAREST和INTER_CUBIC等。最后提供了一个批量转换TIFF文件到PNG的函数示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方式1:

from osgeo import gdal
file_path=r"D:\TIF\1.tif"
ds=gdal.Open(file_path)
driver=gdal.GetDriverByName('PNG')
dst_ds = driver.CreateCopy(r'D:\PNG\1.png', ds)

方式2:(路径中不能有中文)

from libtiff import TIFF
import cv2

tif = TIFF.open(r"dataset\TIF\1.tif", mode='r')
img = tif.read_image()
"""
interpolation:指定插值的方式,图像resize之后,像素要重新计算,靠这个参数来指定重新计算像素的方式,有以下几种:
      INTER_NEAREST - 最邻近插值
      INTER_LINEAR - 双线性插值,如果最后一个参数你不指定,默认使用这种方法
      INTER_AREA -区域插值
      INTER_CUBIC - 4x4像素邻域内的双立方插值
      INTER_LANCZOS4 - 8x8像素邻域内的Lanczos插值
"""
new_array = cv2.resize(img, (5000, 5000), interpolation=cv2.INTER_CUBIC)

cv2.imwrite(r'dataset\PNG\1.png', new_array)

批量转换:

from osgeo import gdal
import os


def TIFToPNG(tifDir_path, pngDir_path):
    for fileName in os.listdir(tifDir_path):
        if fileName[-4:] == ".tif":
            ds = gdal.Open(tifDir_path + fileName)
            driver = gdal.GetDriverByName('PNG')
            driver.CreateCopy(pngDir_path + fileName[:-4] + ".png", ds)
            print("已生成:",pngDir_path + fileName[:-4] + ".png")

if __name__ == '__main__':
    tifDir_path = "D:/dataset/TIF/"
    pngDir_path = "D:/dataset/PNG/"
    TIFToPNG(tifDir_path, pngDir_path)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhichao_97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值