我已经使用OSGeo控制台使用以下GDAL脚本,该脚本已针对一个图像进行了测试,现在我想要更改以运行一个文件夹中的每个图像并输出到另一个文件夹?
编辑:我发布的代码是我对一张图像进行的测试,以检查视觉质量。压缩测试图像后,我对视觉质量感到满意。我现在想将脚本应用到大约。一个文件夹中有1000张图像,然后输出到另一个文件夹。
编辑:我不确定为什么我因为直接提出问题而收到反对意见?我已经检查了关于SO和reddit的许多其他帖子,并且无法在QGIS OsGeo框架中使用任何流程来工作,并且会珍惜一些建议。
gdal_translate -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR -co TILED=YES "D:\split outputs\raster_compression test\EQ_GLNG_Photo_2018_MGA550.tif" "D:\split outputs\raster_compression test\0001_JPEG.tif" -scale -ot Byte
在QGIS python控制台中,应执行以下操作
这希望您的输入和输出文件夹存在,并且希望输入文件夹包含所有tif文件作为子文件夹(不在子文件夹中)
import os
from osgeo import gdal
input_folder = 'path_to_input'
output_folder = 'path_to_output'
options = gdal.TranslateOptions(
outputType=gdal.GDT_Byte,
scaleParams=[''],
creationOptions=['COMPRESS=JPEG', 'PHOTOMETRIC=YCBCR', 'TILED=YES']
)
for entry in os.listdir(input_folder):
if entry.endswith('.tif'):
gdal.Translate(
os.path.join(output_folder, entry),
os.path.join(input_folder, entry),
options=options
)