0

我正在从亚马逊创建货件并获取正确的响应文件。

但是我需要一个 PNG 格式的运营商标签,这还不错,但我在 Gzip 过程中遇到了问题。

亚马逊的开发人员指南指出:

  1. 解码 Base64 编码的字符串。
  2. 使用 .gzip 扩展名保存解码后的字符串
  3. 从 GZIP 文件中提取 PDF/PNG 或 ZPL 文件。

所以第 1 步和第 2 步我做了,但第 3 步中的文件不是正确的 PNG 或类似文件。

这是我的代码:

static void Main(string[] args)
{
    byte[] data = Convert.FromBase64String("Base64 String");

    using (FileStream fs = new FileStream(@"G:\Label.PNG.gzip", FileMode.CreateNew))
    {
        using (GZipStream zipStream = new GZipStream(fs, CompressionMode.Compress, false))
        {
            zipStream.Write(data, 0, data.Length);
        }
    }
}
4

1 回答 1

0

解决了它:

var byteStream = Convert.FromBase64String("Base64 String");

        Image image = null;

        using (MemoryStream memoryStream = new MemoryStream(byteStream))
        {
            using (GZipStream gzip = new GZipStream(memoryStream,CompressionMode.Decompress))
            {
                image = Image.FromStream(gzip);
            }
        }
        image.RotateFlip(RotateFlipType.RotateNoneFlipNone);

        image.Save(@"G:\label123.png");
于 2018-03-06T10:49:52.597 回答