为了账号安全,请及时绑定邮箱和手机立即绑定

在BigTiff中用whitebackground替换透明度

在BigTiff中用whitebackground替换透明度

慕仙森 2021-04-25 03:14:19
我正在使用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时,我只获得了黑色背景。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信