0

SVG 画像を含む XML ファイルがあります。画像は base64 でコーディングされており、おそらく gzip されています (メーカーによると)。

内容はこんな感じ

<Image ID="ID_IMG57" ElementID="ID_IMG57" PMD="svg" X="1281" Y="370" ZIndex="-2" 
      W="36" H="56" MirrorX="False" MirrorY="False" Angle="0" ViewID="" Locked="False" 
      PlacementAngle="-360" PlacementX="1" PlacementY="27" PlacementScale="0" 
      Format="image/svg+base64" IncludeRelevantModules="True">
   <ImageValue>7b0HYBxJliUmL23Ke39K9UrX4HShCIBgEyTYkEAQ7MGIzeaS7B1pRyMpqyqBymVWZV1mFkDM7Z28995777333nvvvfe6O51OJ/ff/z9cZmQBbPbOStrJniGAqsgfP358Hz8iHjeXF2l6WeRXT6p3n320vTvevb+7d+9hur33YLz74MH9g/Te/fEBPkvv3x8/eLj36d5H6VUxa+effbS7s/O7f5TO8+Ji3pq/3i3KZfPZR/O2XT26e/fq6mp8dW9c1Rd393Z2du5Sbx8dPV43eZpOy6yhhpPVSl969K4slm9jr+4+fPjwLn9LTfHj0bzOzz/7iP767KOd8d4e4fzpR+k14b8zvndw/+Dhg4/Su0ePqSl19G4XjXb39u8dUBv6Y3vvUxkavb/H78iY6Vv6c+/+eOfT+/u7H6VNe13mn33UtHX1Nn/04zv8HKby9zbT4NHuYXpelOWjZbXMDz8K+twb7+083Lu3q53uPhjfu0cdSae7u+P7e/t7B9Kn9+XX6nRVldfS8aoqli2R9R5N1ac0baPt3YPx/t7Op/dS6nH33u6DhyP0tn9vZ28/vTf+FGP9lD76lD56ePDp10TAjXp3fEA88uk9GTWBfbC78+mndtB7Ow8e7Mmg3Xdfq8vYmO8TEe/tj3bvjz+9f49Yl/rbf7j/6e6I+vqUxveARnyPqL53MCIafHpv/979r9l7m79rU7AfjZc4afchs98eU3GnB5RfEwgW/nm1bLeb4gf5o/3VO/3zPFsU5fWj47rIysMUfWxny+m8qh81bVa3hx8dPSmL6du6mM7b9fLi8V008ZA5GD+8d+/TfRGF3Yfj3V3m8vdCZnz/9uikbZ0tm/OqXnz2UV21WZtvbR88GD/Yubd//458WeLD3R3i9k/vH4xIqew9ePDw4M5HR/ci2D/YPThgKSVS7o7v7R7c2/t/Afbbew/Hnz4gQSEx2R0/uL+3t0f4PzT4Q6kd/T8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   </ImageValue>
   <ImageAttributes>
       <ImageAttribute Name="FileNameSVG" Value="Blickrichtung1.svg" Source="User" />
   </ImageAttributes>
</Image>

実際の画像はImageValue要素にあります。しかし、それを抽出することはできませんでした。私は試した

byte[] compressed = Convert.FromBase64String(image.Value);
using (GZipStream stream = new GZipStream(new MemoryStream(compressed),
                                                     CompressionMode.Decompress))
{
     const int size = 4096;
     byte[] buffer = new byte[size];
     using (MemoryStream memory = new MemoryStream())  {
         int count = 0;
         do {
             count = stream.Read(buffer, 0, size);
             if (count > 0) {
                 memory.Write(buffer, 0, count);
             }
         }
         while (count > 0)
         File.WriteAllBytes(@"Blickrichtung1.svg", memory.ToArray());
     }
}

しかし、画像には何も表示されません。この背後にある形式をどのように判断できますか?

また、base64 デコードのみを試み、データをファイルに保存しました。バイナリ ファイルにファイル タイプのようなものが表示されることを望みましたが、うまくいきませんでした。

4

1 に答える 1