我正在使用python将RGBA tiff转换为带有白色背景的RGB tiff。
我正在使用ImageMagick和GDAL库。
我的代码如下所示:
def add_background_to_rgba_geotiff(source, destination):
convert_rgba_to_rgb_tif(source, destination)
add_metadata_to_new_geotiff_file(source, destination)
def convert_rgba_to_rgb_tif(source, destination):
# work also with BigTiff
command = ' '.join(['convert', quote(source),
'-background', 'white',
'-alpha', 'background',
'-alpha', 'off', quote(destination)])
shell_command.execute_and_log_outputs(command, shell=True)
def add_metadata_to_new_geotiff_file(source, destination):
RGBA_tif = gdal.Open(source, gdalconst.GA_ReadOnly)
RGB_tif = gdal.Open(destination, gdalconst.GA_Update)
RGB_tif.SetMetadata(RGBA_tif.GetMetadata())
RGB_tif.SetGeoTransform(RGBA_tif.GetGeoTransform())
RGB_tif.SetProjection(RGBA_tif.GetProjection())
del (RGBA_tif)
del (RGB_tif)
def execute_and_log_outputs(command, silence_errors=False, **kwargs):
shell_process = execute_async(command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
**kwargs)
(out, err) = shell_process.communicate()
当我尝试使用tiff运行我的代码时,一切都很好,但是当我想在BigTIFF(> 4GB)上应用它时,它将失败,并显示以下错误:
TIFFWriteDirectoryTagData:超出最大TIFF文件大小。
有人知道如何将BigTiff与ImageMagick一起使用吗?还是可以使用GDAL做到这一点?目前,当我尝试使用GDAL时,我只获得了黑色背景。
相关分类