【问题标题】:Reading GDAL Data from Tiff images Encoded as a Base64String从编码为 Base64String 的 Tiff 图像中读取 GDAL 数据
【发布时间】:2021-06-08 15:51:27
【问题描述】:

我目前正在尝试使用 C# 将编码为 Base64String 的 (Geo)Tiff 图像解码回原始格式,以便我可以访问 GDAL 元数据,例如数据集。

问题 1:我找不到任何关于如何将 Base64String 编码图像转换为 tiff 图像的确切解释。我发现的方法只为tiff返回null。

        Tiff tiff;
        String base64String = imageDataString.Replace("data:image/png;base64,", ""); // data:image/png;base64,
        byte[] byteBuffer = Convert.FromBase64String(base64String);
        MemoryStream ms = new MemoryStream(byteBuffer);
        tiff =  Tiff.ClientOpen("in-memory", "r", ms, new TiffStream());

使用 BitMiracle.LibTiff.Classic。

问题 2: 如果 tiff 图像已解码,如何将其保存到硬盘?这一步似乎是必要的,以便我可以打开图像以提取 GDAL 数据集,如下所示:

            Dataset GdalRoomSet = Gdal.Open(imagePath, 0);
            double[] TransformationCoefficients = new double[6];
            GdalRoomSet.GetGeoTransform(TransformationCoefficients);

【问题讨论】:

  • 你检查String base64String = imageDataString.Replace("data:image/png;base64,", "");后base64String的值了吗?您写道您有一个 tiff,但数据 url 的类型为 png。而要写入文件,只需将 byteBuffer 以二进制方式写入文件即可。
  • @jps 非常感谢。我完全忽略了不同的文件格式。看来我需要一种完全不同的方法。

标签: c# base64 tiff gdal


【解决方案1】:

问题通过 jps 的评论自行解决。这个问题现在已经过时了,因为我需要一种完全不同的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多